在现代社会,电子邮件已成为人们日常沟通的重要工具,Python作为一种功能强大的编程语言,可以轻松实现批量发送邮件的功能,我将为大家详细介绍如何使用Python快速发送邮件,希望能对大家有所帮助。
我们需要了解Python发送邮件的原理,Python中有一个名为smtplib的库,它提供了发送电子邮件的接口,通过使用这个库,我们可以轻松地连接到SMTP服务器,然后发送邮件,以下是具体步骤:
安装必要的库
在开始之前,我们需要安装两个库:smtplib和email,smtplib用于发送邮件,email用于构建邮件内容,安装命令如下:
pip install smtplib
pip install email
编写发送邮件的代码
导入所需库
我们需要导入smtplib和email库中的相关模块:
import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart
设置SMTP服务器和登录信息
我们需要设置SMTP服务器地址、端口以及发件人邮箱账号和密码,以下以QQ邮箱为例:
smtp_server = 'smtp.qq.com' # SMTP服务器地址 smtp_port = 465 # SMTP服务器端口 sender_email = 'your_email@qq.com' # 发件人邮箱账号 sender_password = 'your_password' # 发件人邮箱密码(授权码)
注意:此处密码需要使用授权码,而不是邮箱登录密码,授权码可以在邮箱设置中生成。
创建邮件内容
通常包括标题、发件人、收件人、正文等,以下代码创建了一个简单的文本邮件:
msg = MIMEMultipart() msg['From'] = sender_email msg['To'] = 'receiver_email@qq.com' # 收件人邮箱 msg['Subject'] = '邮件标题' body = '这是邮件正文内容' msg.attach(MIMEText(body, 'plain'))
发送邮件
我们可以使用smtplib库中的SMTP对象发送邮件:
try:
server = smtplib.SMTP_SSL(smtp_server, smtp_port)
server.login(sender_email, sender_password)
server.sendmail(sender_email, [msg['To']], msg.as_string())
print("邮件发送成功")
except Exception as e:
print("邮件发送失败:", e)
finally:
server.quit()
批量发送邮件
如果需要给多个收件人发送邮件,我们可以将收件人邮箱存入列表,然后遍历列表发送邮件:
receiver_emails = ['receiver1@qq.com', 'receiver2@qq.com', 'receiver3@qq.com'] # 收件人邮箱列表
for receiver in receiver_emails:
msg['To'] = receiver
try:
server = smtplib.SMTP_SSL(smtp_server, smtp_port)
server.login(sender_email, sender_password)
server.sendmail(sender_email, [msg['To']], msg.as_string())
print(f"邮件已发送给:{receiver}")
except Exception as e:
print(f"邮件发送给{receiver}失败:", e)
finally:
server.quit()
通过以上步骤,我们就可以使用Python快速发送邮件了,这里只是介绍了最基础的文本邮件发送方法,在实际应用中,我们还可以发送带附件的邮件、HTML格式的邮件等,以下是发送带附件的邮件的示例代码:
from email.mime.base import MIMEBase
from email import encoders
# 创建邮件内容
msg = MIMEMultipart()
msg['From'] = sender_email
msg['To'] = 'receiver_email@qq.com'
msg['Subject'] = '带附件的邮件'
body = '这是邮件正文内容,附件为测试文件。'
msg.attach(MIMEText(body, 'plain'))
# 添加附件
filename = 'test_file.txt'
attachment = open(filename, 'rb')
part = MIMEBase('application', 'octet-stream')
part.set_payload(attachment.read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', f'attachment; filename={filename}')
msg.attach(part)
# 发送邮件(省略)
就是关于Python发送邮件的,掌握这些技巧,相信大家能够更好地利用Python处理邮件发送相关任务。

