我一直在关注这个手动的从第 26 页开始。
首先,我已经用 stunnel 建了一个隧道,并且已经通过以下方式连接命令行使用亚马逊服务器,然后在我的 postfix main.cf 配置文件中我得到了这个:
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname
smtpd_banner = mydomain.com ESMTP $mail_name (Ubuntu)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
readme_directory = no
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.
myhostname = mydomain.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = mydomain.com, localhost, localhost.localdomain
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
default_transport = error
relay_transport = error
relayhost = 127.0.0.1:2525
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = may
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
然后,当我尝试发送邮件时,/var/log/mail.log 中出现此错误:
2 月 29 日 22:23:03 ip-10-166-145-71 postfix/smtpd[29861]: NOQUEUE: 拒绝:来自 localhost[127.0.0.1] 的 RCPT: 550 5.1.1[电子邮件保护]:收件人地址被拒绝:127.0.0.1:2525; [电子邮件保护] [电子邮件保护]proto=ESMTP helo=ip-10-166-145-71.us-west-1.compute.internal
我已在 SES 面板上授予权限[电子邮件保护]。另外我不明白为什么 ehlo 是“ip-10-166-145-71.us-west-1.compute.internal”...我的 /etc/mailname 已经是 mydomain.com,我也尝试过 exim4,结果是一样的。
答案1
详细的分步说明取自此博客。
下载并提取脚本这一页。
来自 README 文件:这些脚本从环境变量中获取您的 AWS 访问密钥 ID 和秘密访问密钥。设置环境变量的过程取决于您的操作系统。您需要执行以下操作:
创建一个名为的环境变量
AWS_ACCESS_KEY_ID
并将其设置为您的 AWS 访问密钥 ID。您的 AWS 访问密钥 ID 将如下所示:AKIAIOSFODNN7示例。创建一个名为的环境变量
AWS_SECRET_ACCESS_KEY
并将其设置为您的 AWS 秘密访问密钥。您的 AWS 秘密访问密钥将如下所示:wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY。
通过从 perl 脚本发送消息来测试设置。
$ echo 'test msg' > msgbody.txt $ ./ses-send-email.pl -s "Test of Amazon SES" -f [email protected] [email protected] < msgbody.txt
请求 SES 访问权限,请转至这一页。
配置postfix。修改
master.cf
以添加aws-email unix - n n - - pipe flags=R user=support argv=/opt/thirdparty/amazon/bin/ses-send-email.pl -r -e https://email.us-east-1.amazonaws.com -f ${sender} ${recipient}
然后修改
main.cf
以添加default_transport = aws-email
SES.pm
从解压的文件夹复制到/user/local/lib/site_perl
(如果不存在,请创建一个),这很重要!
脚本说明:
Amazon SES 不再维护这些脚本。要通过命令行访问 Amazon SES,您可以使用 AWS 命令行界面或适用于 Windows PowerShell 的 AWS 工具。要将您的邮件服务器与 Amazon SES 集成,您可以使用 Amazon SES 简单邮件传输协议 (SMTP) 接口。有关更多信息,请参阅将 Amazon SES 与您现有的电子邮件服务器集成。
答案2
检查您的主机的正向和反向 DNS 记录。
卡琳