【问题标题】:Cannot Send Emails with Amazon AWS, SES and PostFix无法使用 Amazon AWS、SES 和 PostFix 发送电子邮件
【发布时间】:2014-06-28 01:39:37
【问题描述】:

我正在尝试使用带有 postFix 和 Amazon SES 的 Ubuntu AWS 实例使用经过验证的地址 (usertest@gmail.com) 发送电子邮件,但它不适用于 postfix。

1) 我从this site下载了一个“Amazon Simple Email Service Scripts”

我按照指南进行操作,可以使用以下行发送电子邮件:

./ses-send-email.pl --verbose -k aws-credentials -s "从 SES 测试" -f usertest@gmail.com usertest@gmail.com

所以一切正常。

2)我已经安装了postfix,我在/etc/postfix/master.cf 中添加了以下行,以便整合第1点

aws-email unix - n n - - pipe flags=R user=usertest argv=/opt/amazon-mail/ses-send-email.pl -r -k /opt/amazon-mail/aws-credentials -e https://email.us-east-1.amazonaws.com -f usertest@gmail.com ${收件人}

然后我添加到 /etc/postfix/main.cf

default_transport = aws-email

但是当我尝试使用以下方式发送电子邮件时:

echo test | mail -s "test email sent" usertest@gmail.com

我没有收到电子邮件,因为 postfix 自动将发件人电子邮件地址从 usertest@gmail.com 替换为 root@gmail.com,而 root@gmail.com 不是经过验证的电子邮件。

我也尝试在 /etc/aliases 中设置别名,但 postfix 不会用 usertest 替换 root。

我只想用我在 AWS 微实例中分配的 PHP 站点中的 gmail 电子邮件地址发送一些电子邮件。这是我第一次来亚马逊云世界,我想,我在这里做错了。

你能帮帮我吗?

提前致谢。

【问题讨论】:

    标签: ubuntu amazon-web-services postfix-mta amazon-ses


    【解决方案1】:

    我没有收到电子邮件,因为 postfix 会自动替换发件人的电子邮件地址 usertest@gmail.com 到 root@gmail.com 和 root@gmail.com 不是经过验证的电子邮件。

    这是因为您是从 Unix 系统帐户(以 root 登录)发送的。

    我也尝试在 /etc/aliases 中设置别名,但 postfix 不会用 usertest 替换 root。

    没错。您需要一个带有虚拟用户的邮件传递代理(例如 Dovecot),以便 Dovecot 针对 Postfix 对他们进行身份验证,或者您必须使用该名称创建一个 Unix 用户帐户并 su 到该用户。

    【讨论】:

    • 夜骑士感谢您的回复。但是当我通过我的公共 php 站点发送电子邮件时,将使用哪个用户发送电子邮件?也是root用户?。
    • 运行 php 服务的用户(进程所有者)。您可以使用 $processUser = posix_getpwuid(posix_geteuid()); 找到它print_r($processUser); [如果我有帮助,请投票]
    • 这也应该有效:
    【解决方案2】:

    谢谢 我在 main.cf 后缀的文件中使用 sender_canonical_maps 解决了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-04
      • 2022-01-23
      • 2016-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多