Есть ли более эффективный / более питонский способ выполнить следующий пример слияния с использованием smtplib в Python? - PullRequest
0 голосов
/ 20 мая 2019

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

Вот пример текущего кода, который я использую для этого:

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

name_from = 'Test'
email_from ='test_sender@mail.com'
subject = 'Test E-Mail to {}'
message = 'Test E-Mail message to {}'
recipient_emails = ['andrew@mail.com','sally@mail.com','thomas@mail.com']
recipient = ['Andrew','Sally','Thomas']

for recipient_email,recipient in zip(recipient_emails,recipient):

    msg = MIMEMultipart('alternative')
    msg['From'] = '{} <{}>'.format(name_from,email_from)
    msg['To'] = '{} <{}>'.format(email_from)
    msg['Date'] = formatdate(localtime=True)
    msg['Subject'] = subject.format(recipient)
    msg1 = MIMEText(message.format(recipient),'plain')
    msg.attach(msg1)

    smtpObj = smtplib.SMTP_SSL('smtp.mail.com',111,timeout=None)
    smtpObj.login(email_from,'password')
    smtpObj.sendmail(email_from,recipient_email,msg.as_string())

smtpObj.quit()

Это работает, но то, что он делает, это отправляет несколько электронных писем по одному, но мне было интересно, есть ли более эффективный / более питонский способ осуществления этой формы слияния с использованием smtplib в Python?

Спасибо!

...