当前位置: 首页 > 工具软件 > SES-Mailer > 使用案例 >

amazon ses_Amazon Simple Email Service(SES)入门

谢鸿羲
2023-12-01

amazon ses

在本教程中,我将讨论亚马逊的简单电子邮件服务(SES),并介绍几种使用它的方法。 SES是出站电子邮件服务,这意味着它将允许您通过它发送电子邮件。

为什么您需要电子邮件服务? 好吧,对于许多托管服务提供商来说,发送大量电子邮件(也许您有大量的客户在使用您的网上商店)可能是一个问题,因为托管人往往会受到限制。 标准的替代方法是使用Gmail发送电子邮件,但是,它也有局限性。 SES正是出于这个确切目的而设计的。 SES使发送电子邮件更可靠,并且使用魔术,还可以帮助您避免电子邮件进入SPAM文件夹。

价钱

当您注册Amazon时 ,您可以使用他们的免费套餐十二个月。 免费套餐可让您访问所有亚马逊服务,但有一定的局限性。 例如,如果您选择SES的EC2托管,则每天最多只能发送2,000条消息。

否则,成本为每千条消息0.10 USD。 他们将一条消息视为发给单个收件人的一条消息。 因此,如果您将一封电子邮件发送到1000个电子邮件地址,则将花费10美元。

附加文件的费用为每GB 0.12美元。

使用SES的选项

当前有两种使用SES的方法:

  • 简单邮件传输协议(通常称为SMTP)
  • SDK API

他们的工作方式不同; SMTP允许您直接链接到电子邮件服务器,而API方法允许您通过AWS SES服务发送电子邮件。 在本教程中,我们将介绍通过WordPress插件使用SMTP服务器的过程,然后(为了让您胆敢),我们将着眼于使用SDK API。

快速SES帐户设置

在进行任何操作之前,我们需要在SES拥有一个帐户。 这将向您展示如何准备好帐户以及如何使用控制台发送电子邮件。

注册AWS

在使用SES之前,您需要注册一个Amazon Web Services帐户-即使是免费计划,也需要一张信用卡。 要进行注册,您需要转到http://aws.amazon.com/ses ,按照屏幕上的说明进行操作,并完成一些身份确认步骤。

注册后,您将可以访问所有亚马逊服务。

确认你的邮件地址

无论您是在沙盒中还是在生产中使用该服务,都需要验证“发件人”地址。 您可以在帮助文档中找到有关验证电子邮件地址的更多信息。

要求生产访问

收到电子邮件后,您可以请求生产访问权限。 这将使您可以将电子邮件发送到未经验证的电子邮件地址。 您每天可以发送的电子邮件数量将会增加。

注意:在发送真实电子邮件之前,以沙盒模式播放是明智的。

使用WordPress插件

尽管亚马逊目前没有官方的插件,但是那里有第三方软件包无法胜任这项工作。 在此示例中,我们将使用一个名为Amazon SES DKIM Mailer的插件。 这是一个出色的插件,与包括Amazon SES在内的各种电子邮件服务兼容。 这意味着,如果您决定不坚持使用SES,则不必更改站点,只需更改连接详细信息即可。

该插件还带有DomainKeys Identified Mail( DKIM )支持。 DKIM与信誉有关; 通过以此签名您的电子邮件,可以防止您的电子邮件直接进入垃圾文件夹。

正在安装

取自WordPress上插件文档

  1. 停用所有现有的邮件程序插件以避免冲突。
  2. 将插件zip文件解压缩到/ wp-content / plugins /目录中(或通过内置的WordPress插件安装程序进行安装)。
  3. 通过WordPress中的“ 插件管理”菜单激活插件。
  4. 单击插件的 停用 链接旁边的插件的“设置”链接(仍在“插件”页面上),或单击“ 设置”>“邮件设置”链接,以转到插件的管理设置页面。 根据您的情况自定义设置。

如前所述,要在现实环境中使用Amazon SES,您需要申请Production Access。 否则,您将无法将电子邮件发送到您无法控制的地址。

DKIM

要利用DKIM,您需要生成一个公共和私有密钥,并将您的私有密钥上传到您的服务器(我们建议将其命名为“ .htkeyprivate”,并将其放置在网站根目录中,并将权限设置为400或440)。

对于Windows用户,有许多在线密钥生成器可以帮助您完成此任务。 在Linux服务器或Mac上,您可以使用以下终端命令使用“ change-me”密码生成自己的DKIM密钥:

openssl genrsa -des3 -passout pass:change-me -out .htkeyprivate 1024 && openssl rsa -in .htkeyprivate -passin pass:change-me -pubout -out .htkeypublic

对于DKIM,设置DNS TXT记录,例如:

HOST: your-selector._domainkey.example.com. TXT VALUE: v=DKIM1; k=rsa; g=*; s=email; h=sha1; t=s; p=your-public-key;

使用内置测试来检查您的博客是否可以正确发送(DKIM签名)电子邮件。

配置

为了确保将插件设置为可与AWS SES一起使用,需要配置一些设置(请参见上面的屏幕截图)。

  • 勾选通过Amazon SES发送电子邮件?
  • 添加您的AWS访问密钥
  • 添加您的AWS密钥
  • 确保“发件人”地址是您之前验证过的地址。

现在,您可以使用插件的发送测试消息 。 成功收到电子邮件后,就可以完全使用它了。

AWS开发工具包PHP教程

对于更高级的用户,在本节中,我将向您展示如何使用SDK发送电子邮件。 这将使用PHP,但是也有其他语言的SDK。

您首先必须安装SDK。 对于PHP,有几种方法可以做到这一点。 作曲家,Phar,Zip和PEAR。 在本教程中,我们将使用Composer ,您需要首先安装它。 一旦安装了Composer,您应该可以从命令行界面(CLI)访问它。

在项目的根目录中创建一个名为“ composer.json”的文件,在此处放置您的配置。 然后加:

{
   "require": {
       "aws/aws-sdk-php": "2.*"
   }
}

如果您已使用“ composer.phar”,则可以进行php composer.phar install或在Windows composer install 。 然后在您的项目中可以添加require '/path/to/sdk/vendor/autoload.php';

现在,您已经可以访问AWS提供的所有产品API。 这意味着您现在可以发送电子邮件。 那你需要什么?

这是一个例子:

use Aws\Ses\SesClient;

require 'vendor/autoload.php';

$client = SesClient::factory(array(
    'key' => 'AWS_KEY',
	'secret' => 'AWS_SECRET_KEY',
	'region' => 'us-east-1'
));

$emailSentId = $client->sendEmail(array(
	// Source is required
	'Source' => 'from@email.com',
	// Destination is required
	'Destination' => array(
		'ToAddresses' => array('to@email.com')
    ),
    // Message is required
    'Message' => array(
		// Subject is required
		'Subject' => array(
			// Data is required
			'Data' => 'SES Testing',
			'Charset' => 'UTF-8',
		),
		// Body is required
		'Body' => array(
			'Text' => array(
				// Data is required
				'Data' => 'My plain text email',
				'Charset' => 'UTF-8',
			),
			'Html' => array(
				// Data is required
				'Data' => '<b>My HTML Email</b>',
				'Charset' => 'UTF-8',
			),
		),
	),
    'ReplyToAddresses' => array( 'replyTo@email.com' ),
    'ReturnPath' => 'bounce@email.com'
));

让我们来看一下。 首先,我们添加了名称空间的用法,以使代码看起来更简洁。 然后,我们添加了composer autoload.php文件。

为了能够实际发送文件,我们必须建立一个客户端。 这是通过使用SES客户端工厂来完成的。 这可以采用许多不同的设置,但是我们所需的最低限度是密钥,机密和区域。 您可以在IAM管理控制台中找到密钥和机密。 区域是您用于SES的区域。

这样,您现在就可以设置客户端并准备就绪了。 现在,您可以使用客户端调用sendEmail 。 您可以调用其他方法,并且可以在帮助文档中找到有关它们的更多信息。

sendEmail方法采用一个参数,该参数是一个数组。 该数组需要其中的某些数据。 例如来源是必填项,并且必须是您在帐户中已验证的地址,以允许发送电子邮件。

放入您要使用的电子邮件并添加电子邮件的内容后,您现在就可以运行脚本,并且您应该已经发送了第一封电子邮件!

结论

无论您采用哪种实施方式,我都希望本教程引起您的兴趣并鼓励您了解Amazon SES! 如果您在使用SES时遇到任何问题,请随时在评论中寻求建议。

翻译自: https://webdesign.tutsplus.com/tutorials/getting-started-with-amazon-simple-email-service-ses--cms-21688

amazon ses

 类似资料: