Python实现简单的邮件发送程序
发布时间:2023-12-04 22:35:14
Python提供了smtplib库来发送邮件,使用起来非常简单。以下是一个简单的邮件发送程序的实现,并附带使用例子。
1. 导入所需的库
import smtplib from email.mime.text import MIMEText from email.utils import formataddr
2. 配置发件人的邮箱信息
sender = 'your_email@example.com' # 发件人邮箱地址 sender_name = 'Your Name' # 发件人的姓名 password = 'your_password' # 发件人邮箱密码
3. 定义邮件内容和标题
message = MIMEText('邮件内容', 'plain', 'utf-8')
message['From'] = formataddr([sender_name, sender]) # 发件人
message['To'] = formataddr(['收件人姓名', '收件人邮箱地址']) # 收件人
message['Subject'] = '邮件标题' # 邮件标题
4. 连接邮件服务器并发送邮件
try:
server = smtplib.SMTP('smtp.example.com', 25) # 设置邮件服务器和端口号
server.login(sender, password) # 登录发件人邮箱
server.sendmail(sender, ['收件人邮箱地址'], message.as_string()) # 发送邮件
server.quit() # 关闭连接
print('邮件发送成功')
except Exception as e:
print('邮件发送失败:', str(e))
下面是一个完整的使用例子,发送一封带有附件的邮件。
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.utils import formataddr
# 配置发件人的邮箱信息
sender = 'your_email@example.com'
sender_name = 'Your Name'
password = 'your_password'
# 定义邮件内容和标题
message = MIMEMultipart()
message.attach(MIMEText('邮件内容', 'plain', 'utf-8'))
message['From'] = formataddr([sender_name, sender])
message['To'] = formataddr(['收件人姓名', '收件人邮箱地址'])
message['Subject'] = '邮件标题'
# 添加附件
attachment = MIMEText(open('path_to_file', 'rb').read(), 'base64', 'utf-8')
attachment['Content-Type'] = 'application/octet-stream'
attachment['Content-Disposition'] = 'attachment; filename="filename"'
message.attach(attachment)
try:
server = smtplib.SMTP('smtp.example.com', 25)
server.login(sender, password)
server.sendmail(sender, ['收件人邮箱地址'], message.as_string())
server.quit()
print('邮件发送成功')
except Exception as e:
print('邮件发送失败:', str(e))
这是一个简单的邮件发送程序的实现,你可以根据自己的需求进行修改和扩展,如添加多个收件人、发送HTML格式的邮件等。
