AWS SES服务 Golang接入教程(排坑版)

因为刚来看的时候 也迷迷糊糊的 所以 先讲概念 再上代码

一 基础设置

在这里插入图片描述
这里需要完成两个最基础的设置任务
1 是验证至少一个收件电子邮箱
2 【很关键】是验证发送域。即身份里的域类型的身份。(可以理解为配置你的域名邮箱服务器(SMPT)为亚马逊提供的服务器)。点击“待验证”可以看到 一份 DNS 解析记录,将此份记录逐个添加到你域名的DNS服务器。
如下图(我用的是Cloudflare)
在这里插入图片描述
除了我打码的部分 其余都是按着AWS SES要求 新增加的。可以一个一个添加,也可以下载.isv文件上传。我这里上传失败,手动添加的。

在此过程中,有一个MX类型的记录要特别注意,有坑。
SES给的配置值如下:

name:noreply
value:10 feedback-smtp.ap-southeast-1.amazonses.com

如果你把这个值整个复制进去 是不行的。
10应该理解为优先级 单独设置。这样就OK了。
在这里插入图片描述
配置好后 等一会就可以看到任务二也被验证完成了。
验证完成后,你注册AWS的邮箱会收到通知短信
在这里插入图片描述
意味着你可以使用任何以@yourdomain.com结尾的邮箱地址发送邮件。

二 身份

在这里插入图片描述
因为是沙箱环境 所以 身份里是你要发邮件测试的 收件邮箱。创建身份后 会收到邮件,在邮箱里确认后,就可以看到此身份为已验证的。
测试环境你只能给认证过的邮箱发信。

三访问

在这里插入图片描述

SMTP凭证–操控API

在SMTP设置那里 可以创建新的SMTP凭证,
在这里插入图片描述
这里只需要密钥的key value和正确的region就可以建立可用的session链接。

var(
	accessKey = "AKIXXXXU2BBBBBX2TET"                     //""
	secretKey = "IXXXXXWRwD9q1cgyQQEccXXXXXXXXmAN9g" //""
	region    = "ap-southeast-1"
	)
func AWSInit() (*session.Session, error) {
	//只要不修改session,session就可以安全的并发使用。
	return session.NewSession(&aws.Config{
		Credentials: credentials.NewStaticCredentials(accessKey, secretKey, ""),
		//Endpoint:         aws.String(endpoint),
		Region: aws.String(region),
		//S3ForcePathStyle: aws.Bool(false),
		//SDK 支持使用客户端 TLS 证书配置的环境和会话选项,这些证书作为客户端 TLS 握手的一部分发送以进行客户端身份验证。
		//如果使用,则需要 Cert 和 Key 值。如果缺少一个,或者无法加载文件的内容,则会返回一个错误。
		//ClientTLSCert:              nil,
		//ClientTLSKey:               nil,
	})
}

四 测试

sender 是 任何@yourdomain.com 例如:contact@yourdomain.con
因为是沙箱环境 所以 recipients 是 你在【身份】里认证过的
注意 recipients收件人 必须是合规的邮箱格式,否则会报错

测试结果 :很丝滑,不愧是AWS SES

在这里插入图片描述

ps

刚刚又收到了一个邮件 说是探测到了MX配置的那个noreply 具体还没明白 后边再研究下
在这里插入图片描述
坑:
1 aws上写的沙盒环境是一秒一次 但是实际测试发现好像是分时的。
今天中午的时候测试是3分钟一次(很准,就是3分钟)
下午测又是一秒一次了,真离谱。
2 如果服务端是用docker部署的话 如果没配置根证书 邮件是发不出去的 但是没看到任何日志报错。。。尽管我都打了日志
配置以后才可以正常发送

AWS SES (Amazon Simple Email Service) 是亚马逊提供的可靠、灵活且可扩展的电子邮件发送和接收服务。它可以帮助开发者快速、高效地通过网络应用程序发送电子邮件。 在使用 PHP 进行 AWS SES 的集成时,你需要遵循以下步骤: 1. 配置 IAM 用户:首先,你需要在 AWS 管理控制台上创建一个 IAM 用户,并授予该用户适当的 SES 发送和接收权限。 2. 安装 AWS SDK for PHP:你需要在 PHP 项目中安装 AWS SDK for PHP,这是一个用于与 AWS 服务进行交互的库。你可以使用 Composer 进行安装,或者手动下载并在项目中引入。 3. 配置 AWS SES:在代码中,你需要指定 AWS SES 的凭证、区域和其他配置信息。你可以使用 IAM 用户的凭证来进行身份验证,并设置合适的区域来确保与所需的 SES 区域进行通信。 4. 发送邮件:使用 AWS SES,你可以使用 PHP 代码来发送电子邮件。通过构建合适的电子邮件消息并指定接收者、发件人、主题和正文等信息,你可以使用 `sendEmail()` 或 `sendRawEmail()` 方法来发送邮件。 AWS SES 还提供其他功能,如验证发件人邮箱、配置反垃圾邮件策略、设置电子邮件模板等等。通过使用 PHP 和 AWS SES 集成,你可以方便地在你的应用程序中实现强大的电子邮件功能。 总的来说,AWS SES 提供了一个强大的平台来发送和接收电子邮件,而PHP与AWS SES集成,可以让你更轻松地使用PHP发送电子邮件。这对于构建包括用户注册、密码重置、订单确认等功能的网站或应用程序来说,是一个非常有用的工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值