def sendMail(from_email, to_email ,subject,plain_text, html_body, files):
# 打开HTML格式的文件,这是要发送的邮件正文
msgRoot = MIMEMultipart('related')
if to_email.find('ic.net.cn'):
msgRoot['Subject'] = email.Header.Header(subject.decode('utf-8').encode('gb2312'), 'gb2312')
else:
msgRoot['Subject'] = email.Header.Header(subject.decode('utf-8'), 'utf-8')
#msgRoot['Subject'] = subject
msgRoot['From'] = from_email
msgRoot['To'] = to_email.replace('\n','')
msgRoot.preamble = 'This is a multi-part message in MIME format.'
msgRoot["Accept-Charset"]="ISO-8859-1,utf-8"
msgAlternative = MIMEMultipart('alternative')
msgRoot.attach(msgAlternative)
# 设定纯文本信息
msgText = MIMEText(plain_text.encode('utf-8'),"plain","utf-8")
msgAlternative.attach(msgText)
# 设定HTML邮件正文
#发送附件
for file in files:
fp = open(file, 'rb')
msgImage = MIMEImage(fp.read())
fp.close()
msgImage.add_header('Content-ID', '<image1>')
msgRoot.attach(msgImage)
html_body = "%s <br/><img src='cid:image1' />" % html_body
msgText = MIMEText(html_body, 'html','utf-8')
msgAlternative.attach(msgText)
#发送邮件
smtp = smtplib.SMTP(Host)
smtp.set_debuglevel(0)
# auth login 命令
smtp.docmd("HELO %s" %Host)
smtp.docmd("AUTH LOGIN")
# 发送用户名,是base64编码过的,用send发送的,所以要用getreply获取返回信息
smtp.send(base64.encodestring(username))
smtp.getreply()
# 发送密码
smtp.send(base64.encodestring(password))
smtp.getreply()
try:
error = smtp.sendmail(from_email,to_email,msgRoot.as_string())
finally:
smtp.quit()