要在 lambda 中使用 MIMEMultipart 和 SES 服务发送的动态文本
Dynamic text to be sent using MIMEMultipart and SES service in lambda
我正在使用 lambda 从 SES 发送原始消息。
def send_email_method(p1, p2):
msg = MIMEMultipart()
msg["Subject"] = "Test123"
msg["From"] = "abc@gmail.com"
msg["To"] = "xyz@gmail.com"
body = MIMEText("Find list of activity. Part 1="+ p1 +"Part 2=" + p2, "html") /** Here according to 3 conditions below data should be sent**/
msg.attach(body)
ses_client = boto3.client("ses", region_name="us-west-1")
response = ses_client.send_raw_email(
Source="abc@gmail.com",
Destinations=["xyz@gmail.com"],
RawMessage={"Data": msg.as_string()}
)
return
def lambda_handler(event, context):
p1=os.environ['p1']
p2=os.environ['p2']
send_email_method(p1, p2)
p1 和 p2 环境变量可以有以下值:-
- p1='sketch', p2='draw'---- 在这种情况下 p1 & p2 应该在邮件中提及
- p1='', p2='draw'----本例仅 p2 应在邮件中提及,因为 p1 为空
- p1='sketch',p2=''----本例仅 p1 应在邮件中提及,因为 p2 为空
如何在上面的代码中实现上述 3 个条件,同时记住这些 p1 和 p2 也可以扩展到 p3、p4 和 p5?
最简单的方法是使用一些 if
语句来构造您的消息。
但是,由于将来变量的数量可能会增加,我建议将程序更改为 将字典 传递给 send_email_method()
函数,这将允许任意数量的输入。然后该函数可以遍历字典并构造字符串,例如:
values = {1: "sketch", 2: "draw", 3:"erase", 4:"rotate"}
message = ""
for value in values:
message += f" Part {value}={values[value]}"
我正在使用 lambda 从 SES 发送原始消息。
def send_email_method(p1, p2):
msg = MIMEMultipart()
msg["Subject"] = "Test123"
msg["From"] = "abc@gmail.com"
msg["To"] = "xyz@gmail.com"
body = MIMEText("Find list of activity. Part 1="+ p1 +"Part 2=" + p2, "html") /** Here according to 3 conditions below data should be sent**/
msg.attach(body)
ses_client = boto3.client("ses", region_name="us-west-1")
response = ses_client.send_raw_email(
Source="abc@gmail.com",
Destinations=["xyz@gmail.com"],
RawMessage={"Data": msg.as_string()}
)
return
def lambda_handler(event, context):
p1=os.environ['p1']
p2=os.environ['p2']
send_email_method(p1, p2)
p1 和 p2 环境变量可以有以下值:-
- p1='sketch', p2='draw'---- 在这种情况下 p1 & p2 应该在邮件中提及
- p1='', p2='draw'----本例仅 p2 应在邮件中提及,因为 p1 为空
- p1='sketch',p2=''----本例仅 p1 应在邮件中提及,因为 p2 为空
如何在上面的代码中实现上述 3 个条件,同时记住这些 p1 和 p2 也可以扩展到 p3、p4 和 p5?
最简单的方法是使用一些 if
语句来构造您的消息。
但是,由于将来变量的数量可能会增加,我建议将程序更改为 将字典 传递给 send_email_method()
函数,这将允许任意数量的输入。然后该函数可以遍历字典并构造字符串,例如:
values = {1: "sketch", 2: "draw", 3:"erase", 4:"rotate"}
message = ""
for value in values:
message += f" Part {value}={values[value]}"