以下使用新浪邮箱作为演示:
将采用smtplib与email结合使用!
# -*- coding: utf-8 -*-
import smtplib
import string
import re
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
# 邮件smtp的地址
HOST = 'smtp.sina.com'
# 定义邮件的标题
SUBJECT = '这是邮件标题'
# 发件人
FROM = 'xxxxxx@sina.com'
# 收件人
To = 'xxxxxx@qq.com'
# 发送的邮件文本内容
TEXT = '这是一封测试邮件'
att_file = '附件路径'
# 创建要发送的邮件正文及附件对象
# related 使用邮件内嵌资源, 可以把附件中的图片等附件嵌入到正文中
msg = MIMEMultipart('related')
# 创建一个用于发送文本的MIMEText对象
att = MIMEText(open('%s' % att_file, 'rb').read(), 'plain', 'utf-8')
# 指定当前文件格式类型
att["Content-Type"] = 'application/octet-stream'
file_name = re.split(r'[\\|/]', att_file)
# 配置附件显示的文件名称, 当点击下载附件时, 默认使用的保存文件的名称
att["Content-Disposition"] = 'attachment; filename="%s"' % file_name[-1]
# 把附件添加到msg中
msg.attach(att)
# 设置必要请求信息
msg['From'] = FROM
msg['T0'] = To
msg['Subject'] = SUBJECT
# 邮件正文
msg.attach(MIMEText(TEXT))
# 构造smtp服务对象,可以在构造对象时将host和port传入,可以直接连接服务器
smtp_server = smtplib.SMTP()
# 开启发送debug模式,把发送邮件的过程显示出来
smtp_server.set_debuglevel(1)
# 连接邮箱服务器
smtp_server.connect(host=HOST, port='25')
# 启动安全传输模式
smtp_server.starttls()
# 登录邮箱服务器
smtp_server.login(FROM, '发送邮箱的密码')
# 发送邮件
smtp_server.sendmail(FROM, To, msg.as_string())
# 关闭smtp服务器连接
smtp_server.quit()