如何配置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