如何配置Postfix Relayhost(smarthost)使用外部smptd发送电子邮件

时间:2020-01-09 10:39:02  来源:igfitidea点击:

如何配置Postfix MTA使用Linux或类Unix系统上的Web服务器使用基于外部云的SMTP服务器(使用用户名:密码)发送电子邮件?
如何将Ubuntu服务器和后缀配置为中继服务器(smarthost)?
您可以将Postfix MTA配置为用作Smarthost,即将所有邮件路由到smarthost。
智能主机可以是由SendGrid,AWS,Rackspace,Google应用/Gmail,ISP提供的外部smtpd服务器,也可以是您在另一个数据中心中的服务器。

安装后缀(如果未安装在Web服务器上)

执行以下命令以安装后缀:

$ sudo apt install postfix

或者

$ sudo apt-get install postfix

您需要选择邮件服务器类型:
在Ubuntu或Debian服务器上安装期间的Postfix配置

选择互联网站点

输入您域名的标准名称,例如bash.theitroad.local(或www.theitroad.local):

安装可插入身份验证模块

您必须使用apt命令安装libsasl2-modules以进行身份验证:

$ sudo apt-get install libsasl2-modules postfix

或者

$ sudo apt install libsasl2-modules postfix

配置myhostname

编辑/etc/postfix/main.cf,执行:

$ sudo vi /etc/postfix/main.cf

或者

$ sudo nano /etc/postfix/main.cf

如先前配置,将myhostname设置为FQDN(见
):

myhostname = bash.theitroad.local

保存并关闭文件。

设置中继服务器

再次打开/etc/postfix/main.cf,执行:

$ sudo vi /etc/postfix/main.cf

如下编辑/更新:

# Enable auth
smtp_sasl_auth_enable = yes
# Set username and password
smtp_sasl_password_maps = static:YOUR-SMTP-USER-NAME-HERE:YOUR-SMTP-SERVER-PASSWORD-HERE
smtp_sasl_security_options = noanonymous
# Turn on tls encryption 
smtp_tls_security_level = encrypt
header_size_limit = 4096000
# Set external SMTP relay host here IP or hostname accepted along with a port number. 
relayhost = [YOUR-SMTP-SERVER-IP-HERE]:587
# accept email from our web-server only 
inet_interfaces = 127.0.0.1

保存并关闭文件。
由于更改为inet_interfaces,因此停止并启动Postfix,然后执行:

$ sudo systemctl stop postfix
$ sudo systemctl start postfix

或者

$ sudo systemctl restart postfix

验证TCP端口25在127.0.0.1上是否处于列表状态:

$ netstat -tulpn | grep :25

输出示例:

(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      

使用Postfix发送测试邮件到中继服务器

语法为:

echo "This is a test email body." | mail -s "Subject" -a "From: [email protected]" [email protected]

您使用自己的日志文件验证电子邮件是否已发送:

$ sudo tail -f /var/log/mail.log

或者

$ sudo journalctl -u postfix