#-*- coding:utf-8 -*-
from email import encoders
from email.header import Header
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email.utils import parseaddr,formataddr
from email.mime.multipart import MIMEMultipart
import smtplib
import getpass
def _format_addr(s):
name,addr = parseaddr(s)
return formataddr((\
Header(name,'utf-8').encode(),\
addr.encode('utf-8') if isinstance(addr,unicode) else addr
))
from_addr = '______________@163.com'
password = getpass.getpass('Password:')
smtp_server = 'smtp.163.com'
smtp_port = 994 #mail.163.com的ssl端口是 994 或者 465
to_addr = '____________@qq.com'
msg = MIMEMultipart()
msg['From'] = _format_addr(u'user <%s>'% from_addr)
msg['To'] = _format_addr(u'root <%s>'% to_addr)
msg['Subject'] = Header(u'python SMTP send mail test...','utf-8').encode()
#msg.attach(MIMEText('send with file...','plain','utf-8'))
#将图片嵌套到邮件正文,如果有多张图片,需要嵌套哪张只需要改变 'cid: ' 的值即可。
msg.attach(MIMEText('<html><body><h1>Hello</h1>' +
'<p><img src="cid:0"></p>' +
'</body></html>', 'html', 'utf-8'))
with open('/Users/yangqi5/Desktop/test.png','rb') as f:
mime = MIMEBase('image','png',filename='test.png')
mime.add_header('Content-Disposition', 'attachment', filename='test.png')
mime.add_header('Content-ID','<0>')
mime.add_header('X-Attachment-Id','0')
mime.set_payload(f.read())
encoders.encode_base64(mime)
msg.attach(mime)
server = smtplib.SMTP(smtp_server,smtp_port)
server.starttls() #加密发送
server.set_debuglevel(1)
server.login(from_addr,password)
server.sendmail(from_addr,[to_addr],msg.as_string())
server.quit()
转载于:https://my.oschina.net/MrYx3en/blog/493857