Python 使用 SMTP 发送邮件

#-*- 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值