如何使 Amazon SES 成为从我的服务器发送邮件的默认方法?

Jak*_*ake 14 email amazon-ses

我想开始使用 Amazon SES 处理来自我们服务器的所有电子邮件。我们有一些拥有 PHP 托管的自由设计师、一些 Django/Python 网络应用程序以及一些发送电子邮件的系统实用程序。

所以我希望 PHP 的邮件功能、命令行邮件命令和我们的 python 应用程序都能够使用它,最好不必以自己的方式设置它们。

我认为我需要的是在本地主机上运行 Postfix 之类的东西并使用 SES 进行交付,但我不知道该怎么做。

亚马逊的文档说明我需要设置我的邮件传输代理 (MTA),以便它调用 ses-send-email.pl 脚本。我有脚本,但我不确定如何实现。

我在正确的轨道上吗?如果是这样,我如何配置 Postfix 以使用该脚本?

Net*_*ser 14

以下是从SES 开发人员指南中复制的一些项目:

将 ses-send-email.pl 与 Postfix 集成:

  1. 打开 master.cf 文件。在许多系统上,此文件驻留在/etc/postfix目录中。
  2. 通过将以下两行添加到master.cf文件中,然后保存文件来配置新的邮件传输。

    aws-email  unix  -       n       n       -       -       pipe
      flags=R user=mailuser argv=/opt/third-party/amazon/ses-send-email.pl -r -k /opt/third-party/amazon/aws-credentials -e https://email.us-east-1.amazonaws.com -f ${sender} ${recipient}
    
    Run Code Online (Sandbox Code Playgroud)

请注意有关此示例的以下内容:

  • flags 行以至少一个空白字符开始。
  • user 参数必须指定一个非 root 用户(即非管理用户)。该用户mailuser仅用于说明目的。
  • ses-send-email.pl脚本和证书文件驻留在/ opt /第三方/亚马逊的目录。
  • 与 Amazon SES 通信的终端节点是https://email.us-east-1.amazonaws.com

您应该根据需要修改这些参数。

  1. 打开与master.cf同目录下的main.cf文件,修改如下:

    1. 查找 default_transport 行:

    2. 完成后保存 main.cf 文件。
  2. 重新启动 Postfix 服务器。

    /etc/init.d/postfix restart
    
    Run Code Online (Sandbox Code Playgroud)

请注意,此命令在您的特定服务器上可能不完全相同。从现在开始,您的外发电子邮件将通过 Amazon SES 发送。您可以通过 Postfix 服务器发送电子邮件消息来测试这一点,然后验证它是否到达目的地。如果邮件未送达,请检查系统的邮件日志是否有错误。在许多系统上,这是/var/log/mail.log

-- 我创建了一个简单的博客,将我最近在 Amazon Cloud 和 SES 中尝试过的所有内容放在一起。这是链接:http : //netwiser.blogspot.com/2011/02/setup-amazon-ses-to-relay-email-by.html


小智 8

Amazon 刚刚发布了对 SES 的 SMTP 访问。我今天早上快速编写了一个方法:http : //www.millcreeksys.com/2011/12/14/how-to-configure-your-postfix-server-to-relay-email-through-amazon-simple -电子邮件服务-ses/