Ec2:设置邮件以发送电子邮件

Ec2:设置邮件以发送电子邮件

有人可以教我如何配置 centos 实例来发送邮件吗?

我的目的是根据一些信号和警报从 bash 脚本向构建用户发送邮件。我不打算将其用作群发邮件机器。

答案1

这非常适合亚马逊的简单通知服务。该服务(也称为 SNS)通过 bash 脚本即可轻松使用,免费(前 100,000 条消息,总计不到 1gb),并且通知即时可用。

SNS 的设置如下: 在此处输入图片描述
来自:SNS 文档

发送电子邮件看起来麻烦很多,但是,亚马逊的 EC2 环境在发送电子邮件方面有严格的限制。许多人试图将 EC2 用作垃圾邮件平台,因此亚马逊在阻止 SMTP(电子邮件)流量方面做得非常彻底,除非亚马逊规定。您不能仅仅打开亚马逊安全组上的端口来绕过亚马逊的阻止。

Amazon 确实有一个可以在 EC2 内部使用的通用电子邮件功能。它被称为 Amazon Simple Email Service (SES)。将要不是对你很有效,因为它专为批量电子邮件而设计。因此,我认为 SES 的定价、异常处理和消息传递功能并不适合你的应用程序。

另一方面,SNS 在这方面表现得非常好。它包括一封发送给收件人(您的构建用户)的初始电子邮件,询问他们是否希望接收该主题的未来消息;他们可以选择退出,并且必须回复才能接收进一步的消息。

设置过程(如上图所示)均可通过亚马逊的AWS 管理控制台。(您的问题暗示您已经有一个需要此操作的 AWS EC2 账户。)设置完成后,您在 bash 中执行的命令将类似于:

$PROMPT> sns-publish arn:aws:sns:us-east-1:365928882516:Foo --message "你好,世界!"

上述示例是使用 SNS 提供的命令行界面完成的。此命令行界面位于:(Amazon 简单通知服务命令行界面工具,它的文档在这里:(Amazon 简单通知服务命令行界面文档。请先进行设置,如上所述。

它在设置时不会出现任何问题,并且在运行中坚如磐石。

答案2

请注意,在最新版本的 CLI 中,现在将 AWS 服务合并为一个可执行文件,语法略有变化。上面的命令现在是:

$PROMPT> aws sns publish --topic-arn arn:aws:sns:us-east-1:365928882516:Foo --message "Hello, world!"

另请注意,如果您尚未设置 AWS_DEFAULT_REGION 环境变量(例如,在 AMAZON Linux AMI 上默认未设置该变量),则需要指定区域:

$PROMPT> aws --region us-east-1 sns publish --topic-arn arn:aws:sns:us-east-1:365928882516:Foo --message "Hello, world!"

来源:亚马逊的统一 CLI 文档

答案3

如果您使用自己的邮件服务器(在 Centos 上),请记住删除 EC2 电子邮件发送限制!

http://aws.amazon.com/ec2/faqs/#Are_there_any_limitations_in_sending_email_from_EC2_instances

答案4

我知道这是一个老话题,但今天你可以使用 SES 作为 sendmail

http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sendmail.html

相关内容