zoukankan      html  css  js  c++  java
  • 转-阿里云CentOS Linux服务器上用postfix搭建邮件服务器

    http://www.cnblogs.com/dudu/archive/2012/12/12/linux-postfix-mailserver.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 session.

  • 相关阅读:
    【iOS开发-从网络上获取图片尺寸】
    【iOS开发之静态库、动态库】
    【iOS开发之OC和JS互调】
    【iOS之runtime、runloop】
    【iOS开发之C语言】sprintf,strncpy,strcmp三个函数的区别
    计算机中的存储单位
    linux命令行
    python的安装
    Java的跨平台特性
    方法的重写(override)两同两小一大原则:
  • 原文地址:https://www.cnblogs.com/Caleb-NoOnly/p/5703691.html
Copyright © 2011-2022 走看看