复制代码 代码如下:
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)
上一篇:python定时器使用示例分享
下一篇:python检测服务器是否正常