CentOS Linux服务器上用postfix搭建邮件服务器,及删除postfix步骤。

jackxiang 2013-3-15 22:16 | |
背景:我发现postfix安装后有很多sendmail的僵尸进程,怎么办,最彻底的办法是删除掉这个sendmail,最后发现其vps上有postfix,于是删除掉。
删除postfix步骤,它默认会安装sendmail的:
[root@iZ25dcp92ckZ ~]# rpm -e postfix-2.10.1-6.el7.x86_64
错误:依赖检测失败:
        /usr/sbin/sendmail 被 (已安裝) redhat-lsb-core-4.1-27.el7.centos.1.x86_64 需要

[root@iZ25dcp92ckZ ~]# rpm -e redhat-lsb-core-4.1-27.el7.centos.1.x86_64
[root@iZ25dcp92ckZ ~]# rpm -e postfix-2.10.1-6.el7.x86_64    
whereis sendmail
sendmail:  //没有了sendmail。
安装postfix:
http://free.yes81.net/yes81/view-13491.html

注:本文的邮件服务器只用于发送邮件,也就是STMP服务器。

一、准备工作

1. 为邮件服务器添加DNS解析

虽然不加DNS解析也能把邮件发出去,但会被大多数邮件服务器当作垃圾邮件。根据我们的实际经验,需要添加三条DNS解析记录:A记录、MX记录、TXT记录。比如域名cnblogs.info,对应的DNS记录如下:



2. 准备存放邮件的硬盘空间

如果用的是阿里云入门级Linux服务器,有一块20G的数据盘未挂载,需要格式化并挂载(假设这里挂载的目录是/data),具体操作步骤见之前的博文阿里云云服务器硬盘分区及挂载。

二、配置postfix

postfix是CentOS默认安装的邮件服务器软件。以下配置示例假设要配置的域名是cnblogs.info,邮件服务器主机名是mail.cnblogs.info。

1. 打开postfix的配置文件

vi /etc/postfix/main.cf
2. :75 光标移至第75行,修改myhostname

myhostname = mail.cnblogs.info
3. :83 光标移至第83行,修改mydomain

mydomain = cnblogs.info
4. :99 光标移至第99行,修改myorigin

myorigin = $mydomain
5. :116光标移至第116行,修改inet_interfaces

inet_interfaces = all
6. :119光标移至第119行,修改inet_protocols

inet_protocols = ipv4
7. :164光标移至第164行,添加$mydomain

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
8. :264光标移至第264行,修改mynetworks

mynetworks = 127.0.0.0/8
子网掩码(netmask)转换器:Network and IP address calculator

9. :419 光标移至第419行,设置home_mailbox

home_mailbox = Maildir/
10. :425 光标移至第425行,设置mail_spool_directory,/data是之前挂载的数据盘,mail目录需要通过mkdir命令创建

mail_spool_directory = /data/mail
11. 重启postfix使设置生效

service postfix restart
三、用telnet测试邮件服务器是否正常

1. 在邮件服务器上安装telnet

yum install telnet
2. 连接服务器SMTP端口

telnet 127.0.0.1 25
3. 填写发件人

MAIL FROM:<test@cnblogs.info>
回车

4. 填写收件人

RCPT TO:contact@cnblogs.com
回车

5. 撰写邮件内容

5.1 开始写邮件内容

DATA                  
回车

5.2 输入标题

Subject: test message
回车

5.3 输入内容,并以.号结束

test body
.
如果显示下面的信息,说明邮件进入发送队列

250 2.0.0 Ok: queued as 88D6D32A94
四、授权其他服务器通过该邮件服务器发送邮件

未授权的情况下,如果在其他服务器telnet这台服务器,在输入收件人之后会出现Relay access denied错误

RCPT TO:contact@cnblogs.com
554 5.7.1 <contact@cnblogs.com>: Relay access denied
解决方法:

vi /etc/postfix/main.cf,:264将光标移至第264行,在mynetworks的值之后加这台的服务器IP地址,比如:

mynetworks = 127.0.0.0/8 58.33.14.124
service postfix restart之后,问题解决。

五、其他问题

收到上面telnet发出的邮件时,你会发现收件人信息显示的是undisclosed recipients,解决方法是在DATA命令之后,输入Subject之前,分别输入:

FROM:test@cnblogs.info
TO:contact@cnblogs.com
六、参考资料:

Install Postfix to configure SMTP Server

Postfix - using Telnet to test postfix

"To" field is populated with "undisclosed-recipients" sending emails from a telnet

来自:http://www.cnblogs.com/dudu/archive/2012/12/12/linux-postfix-mailserver.html

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/6129/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2016-1-9 17:48
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]