18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 建站知识 > 免费托管域名邮箱:AWS SES + Lambda

免费托管域名邮箱:AWS SES + Lambda

时间:2023-02-10 06:12:01 | 来源:建站知识

时间:2023-02-10 06:12:01 来源:建站知识

本文源自于我的英文Medium:Forwarding Personal Domain Emails to Gmail with AWS Lambda and CloudFormation
QQ邮箱已经停止域名邮箱托管,常见的WorkMail provider简单调查发现可信的提供商,基本都有不同程度的月功能费(GSuite: $6~, AWS WorkMail: $4~, Microsoft 365: $5~),免费的午餐应该只能DIY了。

AWS的Simple Email Service(SES)提供了高可靠性的API,并且有永久免费的Free Tier,感觉是长期托管个人域名邮箱的选项;然而SES并没有内置的存储和web UI,因此还需要转发邮件到其他的个人邮箱,例如Gmail。利用CloudFormation等Infrastructure-as-code工具,本文分享了一个一键生成的Email solution。

先睹为快

代码源文件均保存在Github gist:https://gist.github.com/willings/7f0310c971278cddada267616a39f091

准备工作

配置信息

# Only needed if aws credentials are not set in ~/.aws/config, ensures your IAM user has permission to deploy CloudFormation stackexport AWS_ACCESS_KEY_ID=...export AWS_SECRET_ACCESS_KEY=...export AWS_DEFAULT_REGION=... e.g. us-west-2# Configure domain and destination email informationSTACK_NAME="EmailProxyStack"DOMAINS="mydomain1.com,mydomain2.com"MAIL_RECIPIENT="proxy_destination_email@gmail.com"

创建服务栈

# Get the CloudFormation template file (containing lambda code)curl https://gist.githubusercontent.com/willings/7f0310c971278cddada267616a39f091/raw/43ccabcbb5254375e47a006d7d5878a2afff6eaa/email-proxy-stack.yaml > email-proxy-stack.yaml# Create CloudFormation stack and deployaws cloudformation deploy / --capabilities CAPABILITY_IAM / --template-file email-proxy-stack.yaml / --stack-name ${STACK_NAME} / --parameter-overrides Domains="${DOMAINS}" MailRecipient="${MAIL_RECIPIENT}"

后续操作


以下内容自动翻译自英文文章

工作原理

  1. 将MX设置更新为SES记录后,域电子邮件将转发到AWS SES:10 inbound-smtp.regionInboundUrl.amazonaws.com,有关详细信息,请参阅SES文档。
  2. 在“电子邮件规则”过滤器中,我们添加了一个操作,将整个MIME电子邮件消息放入S3存储桶中,以实现并稍后使用。 存储桶中的文件名与电子邮件ID相同。
  3. 在电子邮件规则过滤器中,存储到S3之后,另一个操作将通过SES通知触发Lambda函数,然后lambda函数代码从S3存储桶中提取电子邮件,并将消息更新为所需的格式,并记录到CloudWatch日志中以供将来搜索。
  4. Lambda函数调用SES send_raw_email api来转发修改后的电子邮件。
  5. SES执行SMTP协议以将电子邮件发送到目的地。

更多细节

优点

  1. 免费(S3服务有1年的有效期,之后可能有很低的费用)
  2. 无限的电子邮件帐户
  3. 可靠,与EC2上的自托管电子邮件服务器相比,无需担心服务器停机

为什么要再造一个轮子?

在以下方面,现有的几个例子(参见英文)都不理想:

可以改进的地方

故障排除

  1. 电子邮件未转发到我的目标邮箱,在哪里可以开始调试?
    遵循答案2〜5。
  2. 我怎么知道SES正在处理我的电子邮件?
    确保正确设置了域上的MX记录,请注意DNS记录更新可能会有些延迟。某些MX DNS查找工具(例如https://mxtoolbox.com/)也可以帮助进行验证。
  3. 为什么发送到域的电子邮件被拒绝并显示“地址不可达”?
    可能是由于没有激活电子邮件规则过滤器引起的,请检查创建的规则过滤器是否激活。
  4. 我怎么知道我的lambda正在处理请求?
    a) 检查S3存储桶以查看是否存在新文件
    b) 检查CloudWatch日志以查看lambda是否有任何处理失败
  5. 为什么即使正确触发了lambda也无法将代理电子邮件发送到我的目标邮箱?
    可能是由于目标邮件地址未列入白名单,默认情况下,SES阻止将电子邮件发送到未验证的域。
  6. 如何找到在堆栈中创建的资源?
    在控制台中检查CloudFormation堆栈,请注意,您可能需要切换到正确的区域。




































































































































































































































































































关键词:邮箱,托管,免费

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭