【问题标题】:Send emails by reading email address from S3通过从 S3 读取电子邮件地址发送电子邮件
【发布时间】:2021-04-22 22:09:17
【问题描述】:

我正在尝试以下方法 -

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

我能够使用 Lambda 将 S3 中的文件读入 DF,但无法发送电子邮件。关于如何使用 AWS 服务做到这一点的任何想法

【问题讨论】:

  • 您想使用哪个 SMTP 服务器发送邮件?或者,您是否考虑向 Amazon SNS 主题发送通知并让收件人订阅该主题?

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


【解决方案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")

【讨论】:

    【解决方案2】:

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

    Create AWS serverless workflows by using the AWS SDK for Java

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-15
      • 2014-04-11
      • 2015-12-07
      • 2016-11-04
      • 2011-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多