Прикрепите txt-файл в Python smtplib

Я отправляю электронное письмо с простым текстом следующим образом:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

def send_message():
    msg = MIMEMultipart('alternative')
    s = smtplib.SMTP('smtp.sendgrid.net', 587)
    s.login(USERNAME, PASSWORD)

    toEmail, fromEmail = to@email.com, from@email.com
    msg['Subject'] = 'subject'
    msg['From'] = fromEmail
    body = 'This is the message'

    content = MIMEText(body, 'plain')
    msg.attach(content)
    s.sendmail(fromEmail, toEmail, msg.as_string())

В дополнение к этому сообщению я хотел бы прикрепить txt

29
задан David542 2 March 2012 в 23:30
поделиться

1 ответ

Начиная с Python3.6 я рекомендовал бы, начинают использовать EmailMessage вместо MimeMultipart. Меньше импорта, меньше строк, никакая потребность поместить получателей и в заголовки сообщения и в параметр функции отправителя SMTP.

import smtplib
from email.message import EmailMessage

msg = EmailMessage()
msg["From"] = FROM_EMAIL
msg["Subject"] = "Subject"
msg["To"] = TO_EMAIL
msg.set_content("This is the message body")
msg.add_attachment("This is the file contents", filename="log_file.txt")

s = smtplib.SMTP('smtp.sendgrid.net', 587)
s.login(USERNAME, PASSWORD)
smtp.send_message(msg)
0
ответ дан 28 November 2019 в 01:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: