【Python开发及测试】Python发送邮件

#-*- coding: UTF-8 -*-
#目的:发送普通文本和超文本邮件,并且把携带的附件显示在超文本文件中
#环境:同在163的服务器下发送和接收邮件

from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage
import smtplib

#初始化程序变量
servername = 'smtp.163.com'
username = 'username@163.com'
password = '***********'
fromaddr = 'fromaddr@163.com'
toaddr = 'toaddr@163.com'

#制作一个Multipart类型的容器,根据Multipart邮件格式添加不同段
msg = MIMEMultipart('mixed')
msg['Subject'] = 'test message'
msg['From'] = fromaddr
msg['To'] = toaddr
msg.preamble = 'This is a multi-part message in MIME format.'

#由于下面需要包含超文本和图片作为内嵌资源,所以这里需要related作参数生成一个message
msgRoot = MIMEMultipart('related')
msg.attach(msgRoot)

#同时包含文本和超文本,这里就需要alternative作为参数
msgAlternative = MIMEMultipart('alternative')
msgRoot.attach(msgAlternative)

msgText = MIMEText('Some HTML text and an image.<br><img src="cid:image1"><br>Nifty!', 'html')
msgAlternative.attach(msgText)

#为内嵌在超文本中的图片资源设置一个Content-ID
fp = open('Menu_001.png', 'rb')
msgImage = MIMEImage(fp.read())
fp.close()

msgImage.add_header('Content-ID', '<image1>')
msgRoot.attach(msgImage)

#把图片作为附件放在邮件中
msg.attach(msgImage)

smtp = smtplib.SMTP()
smtp.connect(servername, 25)
#要做ehlo验证,要不然服务器会认为是不安全邮件
smtp.ehlo_or_helo_if_needed()
smtp.login(username, password)
smtp.sendmail(fromaddr, toaddr, msg.as_string())
smtp.quit()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值