php aws ses,AWS SES邮件接收和解析

本文探讨了在一个高级AWS解决方案中,使用SES、S3、SNS和Lambda处理HTML格式邮件时遇到的问题。在邮件解析过程中,发现在从S3获取邮件内容后,格式出现了Windows的 换行编码。作者怀疑这是一个Unicode或解码问题,但未能找到具体原因。通过提供简化代码和测试案例,作者分享了他们对问题的分析和理解。
摘要由CSDN通过智能技术生成

高级AWS解决方案设计:

HTML格式邮件->AWS SES->入站收据规则->S3和SNS->Lambda函数。在

其想法是Lambda将接收SNS通知并去掉包含S3 bucket详细信息的部分——从S3获取文件并使用邮件解析器模块解析它。在

我有一个简单的测试用例,它使用S3中从未出现过的邮件来测试邮件解析组件。在

突出显示电子邮件的一个特定部分作为案例要点:在

在解析之前,查看电子邮件客户端中的源代码这:在

DescriptionText

最初编码时,它将从文件中读取邮件并进行解析。在

输出将在格式:-在

^{pr2}$

当运行另一个测试时,但是这一次向SES发送邮件,并在解析后从S3中提取有效负载,结果是格式:-在\n\rDescription \r\n\r\nText\n\r

我可以对它进行正则化,但我想知道发生了什么。在

\r\n是windows回车和换行编码。在

获取S3对象的简化代码import boto3

import botocore

self.s3client = boto3.client('s3')

obj = self.s3client.get_object(Bucket=bucket_id,Key=key_id)

解析邮件:在import mailparser

import regex

mp = MailParser()

parsed_mail = mp.parse_from_string(obj)

plain_text_body = parsed_mail.text_plain[0]

这感觉像是一个unicode/解码问题,但我找不到它可能在哪里

我已经为这件事费解了一段时间,但我不能完全把我的手指放在这个问题上!在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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 还提供其他功能,如验证发件人邮箱、配置反垃圾邮件策略、设置电子邮件模板等等。通过使用 PHPAWS SES 集成,你可以方便地在你的应用程序中实现强大的电子邮件功能。 总的来说,AWS SES 提供了一个强大的平台来发送和接收电子邮件,而PHPAWS SES集成,可以让你更轻松地使用PHP发送电子邮件。这对于构建包括用户注册、密码重置、订单确认等功能的网站或应用程序来说,是一个非常有用的工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值