首页 > 解决方案 > 如何在 python 中向多个组发送 smtplib 电子邮件?

问题描述

import smtplib
from email.message import EmailMessage

list1=[
    'Person 1 <email1@outlook.com>',
    'Person 2 <email2@gmail.com>'
    ]
    
list2=[
    'Person 3 <email3@yahoo.com>',
    'Person 4 <email4@hotmail.com>'
    ]
    
masterlist = [list1, list2]

for x in masterlist:
    receivers = ", ".join(x)

msg = EmailMessage()
msg['Subject'] = 'This is a Test Email'
msg['From'] = 'Person 5 <email5@outlook.com>'
msg['To'] = receivers
msg.set_content('Ignore this message')

with smtplib.SMTP('smtp.outlook.com', 587) as smtp:
    smtp.send_message(msg)

这是我使用的代码。我想将此电子邮件发送给某些组,但不会将所有电子邮件合并到一封电子邮件中。我现在的方式只是将电子邮件发送到最后一个电子邮件列表。我应该如何修改它以便能够将其发送到多个电子邮件列表?

标签: pythonemailjoinsmtplib

解决方案


import smtplib
from email.message import EmailMessage

list1=[
    'Person 1 <email1@outlook.com>',
    'Person 2 <email2@gmail.com>'
    ]
    
list2=[
    'Person 3 <email3@yahoo.com>',
    'Person 4 <email4@hotmail.com>'
    ]
    
masterlist = [list1, list2]

for x in masterlist:
    msg = EmailMessage()
    msg['Subject'] = 'This is a Test Email'
    msg['From'] = 'Person 5 <email5@outlook.com>'
    msg['To'] = x
    msg.set_content('Ignore this message')

    with smtplib.SMTP('smtp.outlook.com', 587) as smtp:
        smtp.send_message(msg)

我可以通过根据电子邮件列表将电子邮件部分放入 for 循环来纠正此问题。


推荐阅读