IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Centos下配置Postfix如何发送邮件

    李阳发表于 2015-10-29 12:21:52
    love 0

    目前绝大部分VPS商都已经在系统中默认安装了PostFix作为发邮件的服务器,取代了SendMail。那么我有时候也会经常修改配置文件,在这里收藏一下,免得以后忘了。

    1、如果装了sendmail的话,先卸载了。

    yum remove sendmail

    2、安装 Postfix

    yum install postfix

    3、更改默认MTA为Postfix:

    /usr/sbin/alternatives --set mta /usr/sbin/sendmail.postfix

    4、完事儿,再次检查下是否将MTA改为Postfix了:

    alternatives --display mta

    5、配置Postfix,vi编辑main.cf

    vi /etc/postfix/main.cf

    打开后分别找到以下几项,将其前面的#去掉,并做配置:

    myhostname = mail.wpdaxue.com
        mydomain = wpdaxue.com
        myorigin = $mydomain
        inet_interfaces = all
        inet_protocols = ipv4
        mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
        mynetworks = 192.168.100.10/28, 127.0.0.0/8
        relay_domains =
        home_mailbox = Maildir/

    mydomain:
    mydomain参数是指email服务器的域名,请确保为正式域名(如centos.bz)
    myhostname:
    myhostname参数是指系统的主机名称(如我的服务器主机名称是mail.centos.bz)
    myorigin:
    myorigin参数指定本地发送邮件中来源和传递显示的域名。在我们的例子中,mydomain是centos.bz,也是我的域名。
    对于下面的一行,我们的邮件地址是user@centos.bz而不是user@mail.centos.bz。
    myorigin = $mydomain
    mynetworks:
    mynetworks参数指定受信任SMTP的列表,具体的说,受信任的SMTP客户端允许通过Postfix传递邮件。
    mydestination:
    mydestination参数指定哪些邮件地址允许在本地发送邮件。这是一组被信任的允许通过服务器发送或传递邮件的IP地址。用户试图通过发送从此处未列出的IP地址的原始服务器的邮件将被拒绝。
    inet_interfaces:
    inet_interfaces参数设置网络接口以便Postfix能接收到邮件。
    relay_domains:
    该参数是系统传递邮件的目的域名列表。如果留空,我们保证了我们的邮件服务器不对不信任的网络开放。
    home_mailbox:
    该参数设置邮箱路径与用户目录有关,也可以指定要使用的邮箱风格。

    6、检测并启动Postfix

    service postfix status //检测,若已启动会列出其PID,如下:
    master (pid 25579) is running...
    
    //若未启动,执行以下命令:
    service postfix start

    7、设置开机启动

    chkconfig postfix on

    我自己的安装到此为止就结束了,因为我只需要的是mail功能,并非搭建邮件服务器。此时测试邮件发送,OK。

    参考资料:http://www.gongzi.org/centos-install-postfix-sendmail.html

    8、补充:如果你之前没有配置过 sendmail 组件,那你很可能没有修改 php.ini 的邮件发送路径,那样可能无法发送邮件。

    所以你需要配置php.ini,填写sendmail的绝对路径:

    使用命令打开编辑php.ini

    vi /usr/local/php/etc/php.ini

    输入?sendmail_path 查找定位(或者手动跳转找到sendmail_path),你会发现默认是下面的代码

    ;sendmail_path =

    按 i 进入编辑,将这行修改为

    sendmail_path = /usr/sbin/sendmail -t -i

    按 Esc 键退出编辑,输入 :wq 保存退出

    重启php-fpm进程

    /etc/init.d/php-fpm restart

    9、补充2:通过以上配置,就可以正常发送邮件了,但是发件人邮箱会是 www@wpdaxue.com 这种类型,如果想修改 www 这个参数,比如修改为 admin@wpdaxue.com 需要按照下面的步骤操作:

    编辑 /etc/postfix/canonical:

    vi /etc/postfix/canonical

    添加下面类型的代码:

    www admin@liyangblog.com

    保存退出,然后进入到 /etc/postfix/ 目录:

    cd /etc/postfix/

    执行命令:

    postmap canonical

    接着编辑 /etc/postfix/main.cf:

    vi /etc/postfix/main.cf

    一般情况下里面没有canonical_maps这个参数,在空行处添加:

    canonical_maps = hash:/etc/postfix/canonical

    保存退出,然后重启 postfix:

    postfix reload

    再次发送邮件测试,奇迹应该就发生啦!

    未经允许不得转载:李阳的藏宝阁 » Centos下配置Postfix如何发送邮件



沪ICP备19023445号-2号
友情链接