python学习笔记(SMTP邮件发送:带附件)

博主有段时间没有更新博客了

先整理一个之前整理过的SMTP邮件发送,这次是带附件的功能

 1 #!/usr/bin/env python
 2 # -*- coding: utf_8 -*-
 3 
 4 from email.mime.text import MIMEText
 5 from email.mime.multipart import MIMEMultipart
 6 from email.header import Header
 7 from email.utils import parseaddr, formataddr
 8 import smtplib
 9 
10 
11 def _format_address(text):
12     name, address = parseaddr(text)
13     return formataddr((Header(name, "utf-8").encode(), address))
14 
15 
16 def unittest_smtp():
17     from_address = "xx@xx.com"
18     # 发件箱地址
19     password = "xxx"
20     # 授权密码 不是邮箱登录密码
21     to_address = "xx@xx.com"
22     # to_address = "xx@xx.com"
23     # 收件箱地址
24     smtp_server = "smtp.ym.163.com"
25     # 发件箱服务器地址
26     message = MIMEMultipart()
27     # msg = MIMEText("测试smtp邮件发送功能", "plain", "utf-8")
28     # 第一个参数:邮件正文
29     # 第二个参数:邮件类型 纯文本
30     # 第三个参数:编码
31 
32     message["From"] = _format_address("自动化测试报告 <%s>" % from_address)
33     # 发件人姓名与地址
34     message["To"] = _format_address("xx <%s>" % to_address)
35     # 收件人姓名与地址
36     message["Subject"] = Header("xx自动化测试平台邮箱服务", "utf-8").encode()
37     # 邮件标题
38     message.attach(MIMEText("测试smtp邮件发送功能", "plain", "utf-8"))
39 
40     att1 = MIMEText(open("D:\pythonproject\Wito_erp\wito_selenium\20161024113212.html", "rb").read(), "base64", "utf-8")
41     # 文件地址
42     att1["Content-Type"] = "application/octet-stream"
43     att1["Content-Disposition"] = 'attachment; filename="20161024113212.html"'
44     # 定义附件名称
45 
46     message.attach(att1)
47     # 添加附件
48     try:
49         server = smtplib.SMTP(smtp_server, 25)
50         # 构造smtp服务器连接
51         server.set_debuglevel(1)
52         # 打开debug输出模式
53         server.login(from_address, password)
54         # 登录smtp服务器
55         server.sendmail(from_address, to_address, message.as_string())
56         # 发送邮件
57 
58         print "邮件发送成功"
59         server.quit()
60     except smtplib.SMTPException:
61         print "Error: 无法发送邮件"
原文地址:https://www.cnblogs.com/cllovewxq/p/5993528.html