python使用smtplib发邮件(带附件)代码,pythonsmtplib,简单实例源码:#codi


简单实例源码:

#coding=utf-8import smtplibfrom email.mime.text import MIMETextsender = 'your@email'mailto = 'target@email'#邮件信息msg =MIMEText("It's a text email!")msg['Subject'] = 'Hello world'msg['to'] = mailtomsg['From'] = sender#连接发送服务器smtp = smtplib.SMTP('smtp.xxx.xxx')smtp.login(username,password)#发送smtp.sendmail(sender,mailto,msg.as_string())smtp.quit()

类MIMEText():用来生成text/* 类型的MIME邮件主体对象,完整参数格式是:MIMEText(_text, _subtype=’plain’, _charset=’us-ascii’)

_text:字符型的邮件内容对象;_subtype:MIME内容类型,默认为“普通”,如:MIMEText(text,’html’)指html格式的邮件内容;_charset:指定的字符集,如utf-8

发送带附件的邮件实例:

#coding=utf-8import smtplibfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextfrom email.mime.image import MIMEImagesender = 'your@email'mailto = 'target@email'imgfiles = 'text_1.png'msg = MIMEMultipart()msg['Subject'] = 'Test send image!'msg['To'] = mailtomsg['From'] = sender# 邮件内容Contents = MIMEText('<b>This is a img!</b>','html')msg.attach(Contents)# 带上二进制附件  att = MIMEImage(file(imgfiles, 'rb').read())  att["Content-Type"] = 'application/octet-stream'  att.add_header('content-disposition','attachment',filename=imgfiles)msg.attach(att)# 登录邮件发送服务器smtp = smtplib.SMTP('smtp.xxx.xxx')smtp.login(username,password)# 发送邮件smtp.sendmail(sender, mailto, msg.as_string())smtp.quit()
类MIMEMultipart():用来生成包含多个部分的邮件体的MIME对象;类MIMEImage():如MIMEText(),用来生成image/* 类型的MIME的邮件主体对象;

在邮件内容中插入图片:

imgData = MIMEImage(file(imgfiles, 'rb').read())imgData.add_header('Content-ID', '<%s>'% imgfiles)msg.attach(imgData )contents = MIMEText('<img src="cid:%s">'% imgfiles,'html')msg.attach(contents)

评论关闭