欢迎访问宙启技术站
智能推送

使用Python和email.message模块发送多个收件人的电子邮件

发布时间:2023-12-27 17:09:30

在Python中,我们可以使用email.message模块来发送电子邮件。这个模块提供了一种创建和解析电子邮件的简单方式,并且可以很容易地发送多个收件人的电子邮件。

首先,我们需要导入email.message模块和smtplib模块来发送电子邮件。我们还需要配置邮件服务器的详细信息,如SMTP服务器地址、端口号、发件人邮箱和密码等。

import smtplib
from email.message import EmailMessage

# 配置邮件服务器
smtp_server = 'smtp.example.com'
smtp_port = 587
sender_email = 'sender@example.com'
password = 'password'

# 创建EmailMessage对象
message = EmailMessage()

# 设置发件人
message['From'] = sender_email

# 设置收件人列表
recipients = ['recipient1@example.com', 'recipient2@example.com', 'recipient3@example.com']
message['To'] = ', '.join(recipients)

# 设置主题
message['Subject'] = 'Test Email'

# 设置邮件正文
message.set_content('Hello, this is a test email.')

# 发送邮件
with smtplib.SMTP(smtp_server, smtp_port) as server:
    server.starttls()
    server.login(sender_email, password)
    server.send_message(message)

在上面的示例中,我们使用EmailMessage对象来设置邮件的各个部分,包括发件人、收件人、主题和正文。我们使用逗号和空格来将多个收件人的邮箱地址连接在一起。

然后,我们使用smtplib模块中的SMTP类来连接到邮件服务器,并使用SMTP.starttls()方法启用TLS加密。这是保护电子邮件传输安全的一种方式。

接下来,我们使用SMTP.login()方法登录到发件人邮箱,并使用SMTP.send_message()方法发送电子邮件。

在实际使用中,你可以根据自己的需要对邮件进行自定义设置。你可以在邮件中添加附件、设置抄送人和密送人等。

此外,如果你需要发送大量的电子邮件,你可能会遇到一些限制,如每天发送的邮件数量限制。在这种情况下,你可以将上述代码放入一个循环中,以便发送多个电子邮件,但是你需要注意不要触发邮件服务器的限制或被认为是垃圾邮件。

总之,使用Python和email.message模块发送多个收件人的电子邮件是非常简单和方便的。你可以根据自己的需要进行自定义设置,并根据邮件服务器的限制来发送电子邮件。