通过读取来自 S3 的电子邮件地址发送电子邮件

时间:2021-04-22 22:09:17

标签: amazon-web-services email amazon-s3 aws-lambda

我正在尝试以下 -

  1. 从 S3 中的 csv 文件中读取电子邮件地址,第一列包含电子邮件地址,第二列包含主题,第三列包含电子邮件正文。
  2. 将带有主题和正文的电子邮件发送到从 S3 读取的电子邮件地址。

我能够使用 Lambda 将 S3 中的文件读入 DF,但无法发送电子邮件。关于如何使用 AWS 服务执行此操作的任何想法

2 个答案:

答案 0 :(得分:1)

您可以使用相同的 lambda 函数来创建您自己的 smtp 服务器来发送电子邮件。例如在解析来自 S3 csv 文件的数据时,对于 csv 中的每个条目发送电子邮件。

#!/usr/bin/env python
import smtplib
from email.mime.text import MIMEText
sender = 'xx@xx.com' # parsed data
receivers = ['yy@yy.com'] # parsed data
port = 1025
msg = MIMEText('email text') # parsed data
msg['Subject'] = 'Test mail'
msg['From'] = sender
msg['To'] = receivers

with smtplib.SMTP('localhost', port) as server:
    server.sendmail(sender, receivers, msg.as_string())
    print("email sent")

答案 1 :(得分:1)

您可以通过调用 SES 服务从 Lambda 函数内发送电子邮件。有一个创建 Lambda 函数(用 Java 实现)的示例,该示例展示了如何将电子邮件作为使用 AWS Step Functions 创建的更大工作流的一部分发送。看这个例子:

Create AWS serverless workflows by using the AWS SDK for Java