Python实现邮件群发功能

**正文:**

在日常工作和学习中,邮件是我们不可或缺的沟通工具。当我们需要向多个人发送相同的信息时,一个个手动发送显然是非常低效的。这时,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实现邮件群发功能,我们可以轻松地向多个人发送相同的信息,提高工作效率和沟通效果。希望以上内容对大家有所帮助!

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现Python代码实现邮件群发工资条,你可以使用Python的smtplib和email库来发送邮件。下面是一个简单的示例代码: ```python import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText # 邮件服务器的配置信息 smtp_server = "smtp.example.com" smtp_port = 587 smtp_username = "your_username" smtp_password = "your_password" # 发件人和收件人信息 sender = "[email protected]" recipients = ["[email protected]", "[email protected]"] # 邮件内容 subject = "工资条" body = "附件中是本月的工资条,请查收。" # 创建邮件对象 msg = MIMEMultipart() msg["From"] = sender msg["To"] = ", ".join(recipients) msg["Subject"] = subject # 添加邮件正文 msg.attach(MIMEText(body, "plain")) # 添加附件 attachment_path = "path_to_attachment.pdf" with open(attachment_path, "rb") as attachment: part = MIMEBase("application", "octet-stream") part.set_payload(attachment.read()) part.add_header("Content-Disposition", f"attachment; filename= {attachment_path}") msg.attach(part) # 发送邮件 with smtplib.SMTP(smtp_server, smtp_port) as server: server.starttls() server.login(smtp_username, smtp_password) server.send_message(msg) print("邮件发送成功!") ``` 请注意,你需要将代码中的以下信息替换为你自己的信息: - 邮件服务器的配置信息(smtp_server、smtp_port、smtp_username、smtp_password) - 发件人和收件人信息(sender、recipients) - 邮件内容(subject、body) - 附件路径(attachment_path) 这是一个简单的示例,你可以根据自己的需求进行修改和扩展。例如,你可以使用循环来发送多个工资条附件,或者从文件中读取收件人列表。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值