Google Cloud 与 Mailgun 合作,提供具有程序化 API、日志保留、电子邮件个性化、分析和电子邮件验证的电子邮件服务。
以下说明介绍如何使用 Postfix 将 Mailgun 配置为电子邮件中继。
准备工作
在 Google Cloud Marketplace 上注册并创建新的 Mailgun 账号。
获取您的凭据。根据本说明的要求,您必须知道自己的 Mailgun SMTP 用户名、密码和主机名。请于 Mailgun 控制面板的网域部分下获取您的用户名和密码。
SMTP 主机名是
smtp.mailgun.org
或smtp.eu.mailgun.org
,具体取决于 Mailgun 中网域的配置方式。配置防火墙规则以允许 TCP 端口
2525
上传出的流量。
使用 Postfix 将 Mailgun 配置为邮件中继
将 Mailgun 配置为邮件中继可让 Postfix 邮件传输代理转发远程传送的电子邮件。
使用 SSH 连接到您的实例。
gcloud compute ssh [INSTANCE_NAME]
其中,
[INSTANCE_NAME]
是您要从中发送电子邮件的虚拟机实例的名称。成为超级用户并设置一个安全的 umask。
user@test-instance:~$ sudo su -
root@test-instance:~# umask 077
安装 Postfix 邮件传输代理。
Debian
root@test-instance:~# apt update && apt -y install postfix libsasl2-modules
CentOS
root@test-instance:~# yum install postfix cyrus-sasl-plain cyrus-sasl-md5 -y
出现提示时,选择
Local Only
配置并接受默认的域名选项。修改 Postfix 配置选项。Postfix 配置选项在
main.cf
文件中设置。使用您所选的文本编辑器打开该文件。root@test-instance:~# vi /etc/postfix/main.cf
如果文件中存在以下几行内容,请将其注释掉。
# default_transport = error # relay_transport = error
要添加 Mailgun SMTP 服务,请将以下这行代码添加到文件末尾。
relayhost = [smtp.mailgun.org]:2525
如需强制支持 SSL/TLS 并为这些请求配置 SMTP 身份验证,请将下面几行代码添加到文件末尾。由一个简单的访问和安全层 (SASL) 模块负责处理 Postfix 配置中的身份验证。
smtp_tls_security_level = encrypt smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous
保存更改并关闭该文件。
生成 SASL 密码映射。
创建一个可用于标准输入的新密码文件。
root@test-instance:~# cat > /etc/postfix/sasl_passwd << EOF
在提示符处,输入服务详细信息,并将
YOUR_SMTP_LOGIN
和YOUR_SMTP_PASSWORD
替换为您的凭据。请参阅 Mailgun 帮助,以获取有关如何查看或更改每个网域的凭据的说明。> [smtp.mailgun.org]:2525 YOUR_SMTP_LOGIN:YOUR_SMTP_PASSWORD
通过输入分隔符
EOF
保存并关闭文件。> EOF
使用
postmap
实用程序生成一个.db
文件。root@test-instance:~# postmap /etc/postfix/sasl_passwd
root@test-instance:~# ls -l /etc/postfix/sasl_passwd* -rw------- 1 root root 68 Jun 1 10:50 /etc/postfix/sasl_passwd -rw------- 1 root root 12288 Jun 1 10:51 /etc/postfix/sasl_passwd.db
接着,移除包含您凭据的文件,因为将不再需要该文件。
root@test-instance:~# rm /etc/postfix/sasl_passwd
设置您
.db
文件的权限。root@test-instance:~# chmod 600 /etc/postfix/sasl_passwd.db
root@test-instance:~# ls -la /etc/postfix/sasl_passwd.db -rw------- 1 root root 12288 Aug 31 18:51 /etc/postfix/sasl_passwd.db
最后,重新加载配置以加载修改后的参数。
Debian
root@test-wheezy:~# /etc/init.d/postfix restart
CentOS
[root@test-centos ~]# postfix reload
测试您的配置。安装
mailx
或mailutils
软件包并测试您的配置。Debian
root@test-wheezy:~# apt -y install mailutils
CentOS
[root@test-centos ~]# yum install mailx -y
发送一条测试消息。
root@test-instance:~# echo 'Test passed.' | mail -s 'Test-Email' EMAIL@EXAMPLE.COM
在系统日志中查找包含
status
和表示成功的服务器响应代码(250)
的状态行。Debian
root@test-wheezy:~# tail -n 5 /var/log/syslog
CentOS
[root@test-centos ~]# tail -n 5 /var/log/maillog
如需查看其他主题的详细示例和信息(包括如何跟踪和路由电子邮件),请参阅 Mailgun 文档。
探索有关 Google Cloud 的参考架构、图表和最佳实践。查看我们的 Cloud 架构中心。