如何配置 postfix smtp?
- 外部 smtp 中继
- Smtp 身份验证
- 电子邮件发送速率限制
- 安排电子邮件
答案1
如果你去https://help.ubuntu.com并在搜索框中输入“postfix”,你会得到很多有用的文章,包括这篇https://help.ubuntu.com/community/Postfix帮助安装和配置 postfix。
答案2
我使用了 SendGrid 的免费计划帐户和我的 Office 365 Outlook 邮箱。
外部 SMTP 服务器配置
- 转到 sendgrid 并登记配置文件
- 去发件人身份验证并创建一个新的发件人(图片)
指定一些非免费的电子邮件(我使用了office 365在线账户),这样发件人就可以通过SendGrid进行验证。 - 检查您的邮箱并点击验证单个发件人字母中的按钮(图片)
- 去SMTP 中继集成页面并创建一个 apikey,你将把它放入 postfix 的
sasl_passwd
文件中(图片)。在插入验证页面并验证之前,请勿关闭验证页面。在应用 Postfix 设置并添加新 API 密钥后,重新启动 Postfix 并测试电子邮件发送:
Postfix 配置:
安装一些软件包并配置 postfix:
sudo apt install postfix mailutils
按照以下方式配置/etc/postfix/main.cf
文件,添加或修改以下几行:
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
append_dot_mydomain = no
compatibility_level = 2
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_security_level=may
smtp_tls_CApath=/etc/ssl/certs
smtp_tls_security_level=encrypt
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = localhost.localdomain
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = $myhostname, localhost
relayhost = [smtp.sendgrid.net]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_tls_security_options = noanonymous
创建/etc/postfix/sasl_passwd
文件(进一步获取api密钥):
[smtp.sendgrid.net]:587 apikey:SG.kjaksdjkfajskdk_ASDk.lkjaoIO_Kjkoaofs3i99asfd_kkjasdof99882348IKII
应用设置:
sudo postmap /etc/postfix/sasl_passwd
sudo systemctl restart postfix
在 SendGrid 验证期间测试电子邮件发送
点击接下来验证集成按钮。您将让我们测试您的集成页。
点击验证集成按钮
journalctl -f
使用命令运行不同的终端窗口来查看日志在终端中运行命令来测试邮件发送,使用单一发件人
-r
在创建参数之后外部 SMTP 服务器配置部分。echo "Test Email message body" | mail -r [email protected] -s "Email test subject" [email protected]
结果,我的 gmail.com 邮箱收到了一封测试信。我还将其发送到我的 yahoo.com 帐户,经过一段时间的延迟后,它也被收进了垃圾邮件文件夹。