gpt4 book ai didi

python - 如何让 Python AWS Lambda 打开作为电子邮件对象存储在 S3 中的电子邮件

转载 作者:行者123 更新时间:2023-12-02 00:25:05 27 4
gpt4 key购买 nike

我意识到这是一个完全菜鸟的问题,希望有一个简单的解决方案。但是,我被卡住了并向您寻求帮助!我想要做的是:我有一个 SES 规则集,用于将电子邮件存储在我的 S3 存储桶中。我存储的特定电子邮件包含一个 .txt 附件。我希望有一个在 S3 存储桶“创建”函数上触发的 Lambda 函数,打开电子邮件和附件,然后根据电子邮件附件中的特定文本执行一些其他处理。

我的具体问题是:如何让 Lambda 函数获取 S3 电子邮件“对象”并将其转换为标准的 Python“消息”对象格式,以便我可以使用 Python 的电子邮件图书馆反对吗?

这是我目前所拥有的......我知道不多:

import boto3
import email

def lambda_handler(event, context):
s3 = boto3.client("s3")

if event:

print("My Event is : ", event)
file_obj = event["Records"][0]
filename = str(file_obj["s3"]['object']['key'])
print("filename: ", filename)
fileObj = s3.get_object(Bucket = "mytestbucket", Key=filename)
print("file has been gotten!")

#Now that the .eml file that was stored in S3 is stored in fileObj,
#start parsing it--but how to convert it to "email" class???
#??????

最佳答案

你能试试这样的东西吗?有了这个,你会得到 msg从您使用 S3 文件打开的流返回对象。

import boto3
import email

def lambda_handler(event, context):
s3 = boto3.client("s3")

if event:

print("My Event is : ", event)
file_obj = event["Records"][0]
filename = str(file_obj["s3"]['object']['key'])
print("filename: ", filename)
fileObj = s3.get_object(Bucket = "mytestbucket", Key=filename)
print("file has been gotten!")
msg = email.message_from_bytes(fileObj['Body'].read())
print(msg['Subject'])
#Hello

关于python - 如何让 Python AWS Lambda 打开作为电子邮件对象存储在 S3 中的电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54029770/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com