**正文:**
在日常工作和学习中,邮件是我们不可或缺的沟通工具。当我们需要向多个人发送相同的信息时,一个个手动发送显然是非常低效的。这时,Python的邮件群发功能就派上了用场。下面,我将为大家介绍如何使用Python实现邮件的群发功能。
首先,我们需要导入必要的Python库,包括`smtplib`用于发送邮件,`email.mime.text`用于构建邮件内容,以及`email.utils`用于格式化邮件地址。
```python
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
```
接下来,我们设置邮件的发送方和接收方信息。这里以QQ邮箱为例,需要注意的是,发送邮件时需要使用授权码而不是QQ邮箱的密码。
```python
from_name = "xxxxxx" # 发件人姓名
from_addr = "xxxxxxxxxxx@qq.com" # 发件邮箱地址
from_pwd = "xxxxxxx" # 发件邮箱授权码
to_addr = ["yyyyyyyyyy@qq.com", "example2@example.com"] # 收件邮箱地址列表
```
然后,我们构建邮件的内容,包括标题和正文。这里使用`MIMEText`类来创建一个文本类型的邮件内容,并指定编码格式为"utf-8"以避免乱码问题。
```python
my_title = "Hehuyi Test" # 邮件标题
my_msg = "Hello World" # 邮件正文
msg = MIMEText(my_msg, 'plain', 'utf-8') # 创建邮件内容对象
msg['From'] = formataddr([from_name, from_addr]) # 设置发件人信息
msg['Subject'] = my_title # 设置邮件标题
```
接下来,我们通过SMTP协议发送邮件。这里使用`smtplib.SMTP_SSL`类来创建一个安全的SMTP连接,并指定SMTP服务器的地址和端口号。然后,使用授权码登录QQ邮箱,并使用`sendmail`方法发送邮件。
```python
smtp_srv = "smtp.qq.com" # SMTP服务器地址
try:
srv = smtplib.SMTP_SSL(smtp_srv, 465) # 创建SMTP连接对象
srv.login(from_addr, from_pwd) # 登录QQ邮箱
srv.sendmail(from_addr, to_addr, msg.as_string()) # 发送邮件
print('发送成功') # 打印发送成功信息
except Exception as e:
print('发送失败') # 打印发送失败信息
finally:
srv.quit() # 退出SMTP连接
```
需要注意的是,在实际应用中,我们应该将收件人邮箱地址列表化,以便实现群发功能。同时,为了提高代码的健壮性和可读性,我们可以将以上代码封装成一个函数或类,方便在需要时调用。
通过Python实现邮件群发功能,我们可以轻松地向多个人发送相同的信息,提高工作效率和沟通效果。希望以上内容对大家有所帮助!