AWS SES Отправить письмо нескольким получателям с помощью Python - PullRequest
0 голосов
/ 24 июня 2019

Я новичок в функции AWS Lambda.

Я хотел отправить письмо нескольким получателям.Я могу отправить письмо на один адрес электронной почты, но не несколько идентификаторов электронной почты и показывает ошибку.

Я просто ссылался на страницу документации amazon и написал следующий код.

Я использую переменную окружения runteam, и она имеет значения, такие как ['aaa@xyz.com', 'bbb@xyz.com', 'ccc@xyz.com']

import boto3
import os
import os, sys, subprocess
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication

def lambda_handler(event,context):

    ses = boto3.client("ses")
    s3 = boto3.client("s3")
    runemail = os.environ['runteam']
    for i in event["Records"]:
        action = i["eventName"]
        #ip = i["requestParameters"]["soruceIPAddress"]
        bucket_name = i["s3"]["bucket"]["name"]
        object = i["s3"]["object"]["key"]

    fileObj = s3.get_object(Bucket = bucket_name, Key = object)
    file_content = fileObj["Body"].read()

    sender = "test@xyz.com"
    to = runemail
    subject = str(action) + 'Event from ' + bucket_name 

    body = """
        <br>
        This email is to notify regarding {} event
        This object {} is created
    """.format(action,object)

    msg = MIMEMultipart('alternative')

    msg["Subject"] = subject
    msg["From"] = sender
    msg["To"] = ', '.join(runemail)

    body_txt = MIMEText(body, "html")
    attachment = MIMEApplication(file_content)
    attachment.add_header("Content-Disposition","attachment", filename = "ErrorLog.txt")
    msg.attach(body_txt)
    msg.attach(attachment)
    response = ses.send_raw_email(Source = sender, Destinations = rumemail, RawMessage = {"Data": msg.as_string()})
    return "Thanks"

1 Ответ

0 голосов
/ 24 июня 2019

Эта строка:

msg["To"] = ', '.join(runemail)

ожидает список Python, а не строку. Я предлагаю вам добавить строку отладки после нее, чтобы увидеть, что вы на самом деле отправляете в систему.

Я бы рекомендовал передать вашу переменную среды как:

person@address.com, person2@address.com, person3@address.com

Затем используйте:

msg["To"] = runemail
...