|
复制代码 代码如下: 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'],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':'带附件的测试邮件', 'attach':['e:/a/a.txt'] } print sendmail(login,mail)
(编辑:安卓应用网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|