AWS SES邮件接收和解析

时间:2018-05-24 13:28:16

标签: python amazon-web-services amazon-s3 amazon-ses

高级AWS解决方案设计:

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

想法是Lambda将采用SNS通知并使用S3存储桶详细信息删除部分 - 从S3获取文件并使用mail-parser模块解析它。

我有一个简单的测试用例,它使用从未在S3中测试邮件解析组件的邮件突破了其中的一部分。

突出显示电子邮件的一个特定部分: -

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

<tr class="dataElementContainer">
    <td class="dataLabelContainer">Description</td>
    <td class="dataValueContainer">Text</td>
</tr>

最初编码时,它会从文件中读取邮件并解析它。

输出格式为: -

\n\rDescription      Text\n\r

当运行另一个测试时,但这次将邮件发送到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 个答案:

没有答案
相关问题