设为首页 收藏本站
查看: 1334|回复: 0

[经验分享] sendmail收邮件

[复制链接]

尚未签到

发表于 2015-11-25 12:05:54 | 显示全部楼层 |阅读模式
  你的sendmail的本地配置文件里面需要配置一个文件:local-host-names,里面需要有你想用来接收邮件的域名比如mail.xxx.com,同时你的DNS的MX记录必须是mail这个主机的记录比如mail  IN  MX  10 mail.xxx.com.
这样你才能收到xxx@mail.xx.com的邮件。
  
  
  ***********************
  
  我在redhat 9下配置sendmail:
配置的域名时test.com
mail server主机名:mail.test.com
经过简单的配置可以用xx@mail.test.com的形式收发邮件了,请教还需怎样配置才能用xx@test.com来收发邮件。

我已做了如下配置:
在/etc/mail/local-host-names中已加入了:test.com和mail.test.com
在/etc/mail/sendmail.mc中去掉了“FEATURE(`masquerade_envelope')”前的dnl,并生产cf,
我在同一个局域网的另外一台win2000server在配置的DNS
现在情况是客户端发送xx@test.com时能发出,但xx收不倒,在mail server上用mailq可以看到队列中有发不出的邮件提示找不到test.com
  ****************************
  
  
QPopperUnix/Linux环境下的POP3服务器,该软件配合Sendmail使用。其主要功能是实现支持用户通过POP3接收信件。安装和配置Qpopper的主要步骤如下:
     1.创建从/usr/mail指向/var/spool/mail/的链接
     [iyunv@email src]# ln -s /var/spool/mail/ /usr/mail
     2.解压QPopper软件包
     [iyunv@email src]# tar xvfz QPopper4.0.3.tar.gz
     [iyunv@email src]# cd QPopper4.0.3
     3.编译安装QPopper
     [iyunv@email QPopper4.0.3]# ./configure
     [iyunv@email QPopper4.0.3]# make
     [iyunv@email QPopper4.0.3]# make install
安装成功以后,QPopper将会被安装在/usr/local/sbin/目录下。设置inetd启动QPopper。编辑/etc/inetd.conf,查找pop内容的一行,在其前面添加#号,然后在改行后面添加如下内容:
     pop-3 stream tcp nowait root /usr/local/sbin/popper
     QPopper -s然后查找inetd进程ID号:
     [iyunv@email QPopper4.0.3]# ps ax|grep inetd
     336 ? S 0:00 inetd
     16872 pts/0 S 0:00 grep inetd
     找到inetd进程号为226。然后重新启动inetd进程,
     重新读取配置文件:
     [iyunv@www QPopper4.0.3]# kill -HUP 336
     这时候查看系统服务端口号:
     [iyunv@email QPopper4.0.3]# netstat -ln|grep 110
     tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN
     则说明110端口已经开始正常服务。
六.    测试邮件服务器
接下来是测试邮件服务器的邮件发送/接收功能。注意,在测试时,不要在只对本地用户进行测试。例如,用户的域为abc.com,测试时,不要只在邮件服务器上通过mailelm等程序测试user1@abc.com用户。因为,此时user1是本地用户,所以邮件服务器可以对其进行Relay。用户应该从局域网上的另一台机器使用Outlook等邮件客户端对服务器进行收发测试。
这种配置对于IP固定用户没有问题,只需要在access文件中指定其固定IP即可,而对于需要支持流动用户,如拨号用户的应用则不大适合,因为如果完全打开RELAY功能可能导致邮件服务器的称为垃圾邮件的转发站。
    解决用户IP不固定问题有2种方案,一种为采用SMTP认证,即用户发送邮件以前,邮件服务器进行用户身份认证,通过则服务器为其发送邮件,否则拒绝发信;第二种方案是采用动态转发授权控制(Dynamic Relay Authorization ControlDRAC),其工作原理为: 拨号用户拨号上网后,首先收邮件,如果用户能正确收邮件,则DRAC自动在access.db中加入刚才收邮件用户的IP,并允许此IP可以发信。不过,30分钟内,此IP不发/收邮件的话,DRAC将从access.db中删除此IP。此种机制保证拨号用户在没有SMTP认证的情况下,也可以通过远程邮件服务器发送电子邮件。
  
  
  
  
  
  
  
  
  
  ***********************************************************************************************
  内容简介:人们在Internet上最常使用的就是电子邮件,很多企业用户也经常使用电子邮件系统。在Unix系统中,Sendmail是应用最广的电子邮件服务器。本文将比较详细地介绍如何建立一个Sendmail电子邮件服务器,以满足企业的基本需求 ……
  
  企业Sendmail邮件服务器的创建(1)
  
  人们在Internet上最常使用的就是电子邮件,很多企业用户也经常使用电子邮件系统。在Unix系统中,Sendmail是应用最广的电子邮件服务器。本文将比较详细地介绍如何建立一个Sendmail电子邮件服务器,以满足企业的基本需求。
  
  一。 Sendmail的工作模式
  Sendmail是最重要的邮件传输代理程序。理解电子邮件的工作模式是非常重要的。一般情况下,电子邮件系统可分为用户代理、传输代理和投递代理几个部分。用户代理用来接受用户的指令,将用户的信件传送至信件传输代理,如Outlook Express和Foxmail等。而投递代理则从信件传输代理取得信件传送至最终用户的邮箱,如Procmail.
  
  当用户试图发送一封电子邮件的时候,他并不能直接将信件发送到对方的机器上,用户代理必须试图去寻找一个信件传输代理,把邮件提交给它。信件传输代理得到了邮件后,首先将它保存在自身的缓冲队列中,然后,根据邮件的目标地址,信件传输代理程序将找到应该对这个目标地址负责的邮件传输代理服务器,再通过网络将邮件传送给它。对方的服务器接收到邮件之后,将其缓冲存储在本地,直到电子邮件的接收者查看自己的电子信箱。
  
  显然,邮件传输是从服务器到服务器的,而且每个用户必须拥有服务器上存储信息的空间(称为信箱)才能接受邮件(发送邮件不受这个限制)。可以看到,一个邮件传输代理的主要工作是监视用户代理的请求,根据电子邮件的目标地址找出对应的邮件服务器,将信件在服务器之间传输并且将接收到的邮件缓冲或者 提交给最终投递程序。 有许多程序可以作为信件传输代理。在Unix系统中,Sendmail是其中应用最广泛的一个,它是一个免费软件,可以支持数千甚至更多的用户,而且占用的系统资源相当少。不过,Sendmail的配置十分复杂,因此,也有人使用另外的一些工具,如Qmail或Postfix等等。
  
  当Sendmail程序得到一封待发送的邮件的时候,它需要根据目标地址确定将信件投递给对应的服务器,这是通过DNS服务实现的。例如一封邮件的目标地址是ideal@linuxaid.com.cn,那么Sendmail首先确定这个地址是用户名(ideal)+机器名(linuxaid.com.cn)的格式,然后,通过查询DNS来确定需要把信件投递给某个服务器。
  
  DNS数据中,与电子邮件相关的是信件交换(Message eXchange,MX)记录,例如在linuxaid.com.cn这个域的dns数据文件中有如下设置:
  
  IN MX 10 mail
  
  IN MX 20 mail1
  
  mail IN A 202.99.11.120
  
  mail1 IN A 202.99.11.121
  
  显然,在DNS中说明linuxaid.com.cn有2个MX服务器,于是,Sendmail试图将邮件发送给两者之一。一般来说,排在前面的MX服务器的优先级别比较高,因此服务器将试图连接mail.linuxaid.com.cn的25端口,试图将信件报文转发给它。如果成功,SMTP服务器的任务就完成了。在这以后的任务,将由mail.linuxaid.com.cn来完成。在一般情况下,MX服务器会自动把信件内容转交给目标主机。不过,也存在这样的情况,目标主机(比如linuxaid.com.cn)可能并不存在,或者不执行SMTP服务,而是由其MX服务器来执行信件的管理,这时候,最终的信件将保存在MX机器上,直到用户来查看它。
  
  如果DNS查询无法找出对某个地址的MX记录(通常因为对方没有信件交换主机),那么Sendmail将试图直接与来自邮件地址的主机对话并且发送邮件。例如,test@aidgroup.linuxaid.com.cn,DNS中没有对应的MX记录,因此Sendmail在确定MX服务器失败后,将从DNS取得对方的IP地址并直接和对方对话试图发送邮件。
  
  企业Sendmail邮件服务器的创建(2)
  
  二。 工作环境
  本文假设用户希望在企业网环境中创建一个电子邮件服务器,为本企业用户提供邮件服务。该服务器拥有一个合法的IP地址202.99.11.200和一个合法的域名mail.linuxaid.com.cn,并且DNS的MX记录也指向该域名(注:这里示例域名和IP地址均为伪造域名和地址)。为了满足域名需求,DNS的域数据文件应该包含以下内容:
  
  IN MX 10 mail
  
  mail IN A 202.99.11.200
  
  试验环境为RedHat 6.2、Sendmail 8.11.4和Qpopper 4.0.3,可分别从http://www.Sendmail.org/current-release.html和http://www.eudora.com/QPopper_general/ 下载Sendmail和Qpopper.
  
  三。 Sendmail的安装
  当前Sendmail最新的稳定版本为8.11.4,下载得到tar.gz格式的压缩包以后,将其存放在/usr/src目录下。
  
  1.解压软件包
  
  [iyunv@email src]# tar xvfz Sendmail.8.11.4.tar.gz
  
  [iyunv@email src]# cd Sendmail-8.11.4
  
  2.编译安装
  
  [iyunv@email Sendmail-8.11.4]# cd Sendmail
  
  [iyunv@email Sendmail]# sh Build
  
  3.生成配置文件
  
  [iyunv@email Sendmail]#cd /usr/src/Sendmail-8.11.4/cf/cf/
  
  一般该目录下应该有config.mc的文件,如果没有则创建新文件
  
  config.mc,内容如附图所示。
  
  然后运行:
  
  [iyunv@email cf]# sh Build config.cf
  
  该命令将在该目录下生成config.cf文件。
  
  4.安装Sendmail
  
  [iyunv@email Sendmail]# sh Build install
  
  将config.cf拷贝到/etc/mail目录下,并改名为Sendmail.cf:
  
  [iyunv@email mail]#cp /usr/src/Sendmail-8.11.4/cf/cf/
  
  config.cf /etc/mail/Sendmail.cf
  
  企业Sendmail邮件服务器的创建(3)
  
  四。 Sendmail的配置
  配置Sendmail的步骤如下。
  
  1.在/etc/mail目录下创建access文件,内容如下:
  
  127.0.0.1 RELAY
  
  202.99.11 RELAY
  
  这里表示允许本机和202.99.11.0网段中的机器通过该邮件服务器的转发邮件。其中202.99.11应该是您拥有的局域网络IP网段的IP地址,只需要写网络部分即可。比如说您的用户有多个网段,只需要在其中设置多个网段即可:
  
  127.0.0.1 RELAY
  
  202.99.11 RELAY
  
  200.200.201 RELAY
  
  2.对access文件生成易于检索的库文件格式:
  
  [iyunv@email mail]# makemap hash access.db < access
  
  创建文件/etc/mail/local-host-names,其内容为本机的拥有的域名信息,因为在上面的DNS配置文件中该服务器有一个域名: email.linuxaid.com.cn,并且MX记录也指向该域名,因此该服务器就有2个域名,分别为email.linuxaid.com.cn和linuxaid.com.cn,这样用户才可以使用someone@linuxaid.com.cn这样的地址收发邮件,故该文件应该包含入下内容:
  
  linuxaid.com.cn.
  
  mail.linuxaid.com.cn.
  
  3.创建别名数据库。在/etc/mail/aliases目录下创建文件aliases,内容如下:
  
  MAILER-DAEMON: postmaster
  
  postmaster: root
  
  bin: root
  
  daemon: root
  
  nobody: root
  
  然后生成aliases库:
  
  [iyunv@email mail]# newaliases
  
  然后,就可以按如下方式启动Sendmail了:
  
  [iyunv@email mail]# /usr/sbin/Sendmail -bd -q20m
  
  在第一次启动时可能出现如下的错误信息:
  
  554 5.0.0 /etc/mail/Sendmail.cf: line 41: unknown
  
  configuration line ""
  
  554 5.0.0 /etc/mail/Sendmail.cf: line 60: unknown
  
  configuration line ""
  
  不要紧张,只需要使用vi编辑器将这些行删除即可,其实41和60等行都是空白行而已。删除以后再重新启动就应该没有问题了。
  
  企业Sendmail邮件服务器的创建(4)
  
  五。 QPopper的安装配置
  QPopper是Unix/Linux环境下的POP3服务器,该软件配合Sendmail使用。其主要功能是实现支持用户通过POP3接收信件。安装和配置Qpopper的主要步骤如下:
  
  1.创建从/usr/mail指向/var/spool/mail/的链接
  
  [iyunv@email src]# ln -s /var/spool/mail/ /usr/mail
  
  2.解压QPopper软件包
  
  [iyunv@email src]# tar xvfz QPopper4.0.3.tar.gz
  
  [iyunv@email src]# cd QPopper4.0.3
  
  3.编译安装QPopper
  
  [iyunv@email QPopper4.0.3]# ./configure
  
  [iyunv@email QPopper4.0.3]# make
  
  [iyunv@email QPopper4.0.3]# make install
  
  安装成功以后,QPopper将会被安装在/usr/local/sbin/目录下。设置inetd启动QPopper.编辑/etc/inetd.conf,查找pop内容的一行,在其前面添加#号,然后在改行后面添加如下内容:
  
  pop-3 stream tcp nowait root /usr/local/sbin/popper
  
  QPopper -s然后查找inetd进程ID号:
  
  [iyunv@email QPopper4.0.3]# ps ax grep inetd
  
  336 ? S 0:00 inetd
  
  16872 pts/0 S 0:00 grep inetd
  
  找到inetd进程号为226.然后重新启动inetd进程,

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-143385-1-1.html 上篇帖子: phpstudy使用自带sendmail扩展发送邮件 下篇帖子: FreeBSD启动问题,禁用sendmail
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表