Python语言技术文档

微信小程序技术文档

php语言技术文档

jsp语言技术文档

asp语言技术文档

C#/.NET语言技术文档

html5/css技术文档

javascript

点击排行

您现在的位置:首页 > 技术文档 > Python网站web

python发送邮件示例(支持中文邮件标题)

来源:中文源码网    浏览:280 次    日期:2024-04-22 09:23:52
【下载文档:  python发送邮件示例(支持中文邮件标题).txt 】


python发送邮件示例(支持中文邮件标题)
复制代码 代码如下:def sendmail(login={},mail={}): '''\ @param login login['user'] login['passwd'] @param mail mail['to_addr'] mail['subject'] mail['content'] mail['attach'] ''' from datetime import datetime from base64 import b64encode import smtplib, mimetypes from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.image import MIMEImage
user_info = login['user'].split('@') mail_configure = {} mail_configure['mail_encoding'] = 'utf-8' mail_configure['mail_supplier'] = user_info[1] mail_configure['from_addr'] = login['user'] mail_configure['server_host'] = 'smtp.%s' % mail_configure['mail_supplier'] error = None
try: email = MIMEMultipart() email['from'] = mail_configure['from_addr'] email['to'] = mail['to_addr'] email['subject'] = '=?%s?B?%s?=' % (mail_configure['mail_encoding'],b64encode(mail['subject'])) email_content = MIMEText(mail['content'], _charset=mail_configure['mail_encoding']) email.attach(email_content)
if 'attach' in mail: for i in mail['attach']: ctype, encoding = mimetypes.guess_type(i) if ctype is None or not encoding is None: ctype = 'application/octet-stream' maintype, subtype = ctype.split('/', 1) att = MIMEImage((lambda f: (f.read(), f.close()))(open(i, 'rb'))[0], _subtype = subtype) att.add_header('Content-Disposition', 'attachment', filename = i) email.attach(att)
smtp = smtplib.SMTP() smtp.connect(mail_configure['server_host']) smtp.login(user_info[0], login['passwd']) smtp.sendmail(mail_configure['from_addr'], mail['to_addr'], email.as_string()) smtp.quit() except Exception as e: error = e
return (mail_configure['from_addr'], mail['to_addr'], error)
测试
复制代码 代码如下:def t21(): login = { 'user':'ak43@sina.com', 'passwd':'hello@d' } mail = { 'to_addr':'ak32@sina.com;ak32@21cn.com', 'subject':'不带附件的测试邮件', 'content':'''\ sz002718,友邦吊顶 sz002719,麦趣尔 sz002722,金轮股份 ''', } print sendmail(login, mail)
login = { 'user':'hellot@sina.com', 'passwd':'hello#world' } mail = { 'to_addr':'tom12@sina.com;tom12@21cn.com', 'subject':'带附件的测试邮件', 'content':'''\ sz002718,友邦吊顶 sz002719,麦趣尔 sz002722,金轮股份 ''', 'attach':['e:/a/a.txt'] } print sendmail(login, mail)

相关内容