Rumah > Artikel > pembangunan bahagian belakang > 使用python实现发送邮件方法
这篇文章介绍使用python实现发送邮件方法
# coding=utf-8
import smtplib from time import sleep from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart
def send_email(**param): ''' 发送邮件 author:cdq :param param:{"username":"","password":"","from_addr":"","to_addr":"","smtpserver":"","subject":"","file_path":""} :file_path=文件路径 :return: ''' error = "" flag = True try: # from conf_isms.adconf import local_host_ip if not param['is_send']: flag = False msg = MIMEMultipart() content = '<span>您好:</span><br><span style="text-indent: 2em;">' \ ' 数据报表已发至邮箱,请您查看</span><br><span>' \ ' 祝您生活愉快!<span>' body = MIMEText(content, _subtype="html", _charset="utf-8") msg.attach(body) if isinstance(param['file_path'], list): for m in param['file_path']: att = MIMEText(open(m, 'rb').read(), 'base64', 'utf-8') file_name = m.split('/')[-1] att["Content-Type"] = 'application/octet-stream' att["Content-Disposition"] = 'attachment; filename="%s"' % file_name.encode('gbk') # 防止下载文件名乱码 msg.attach(att) msg['to'] = ';'.join(param['to_addr']) msg['from'] = param['from_addr'] msg['subject'] = param['subject'] sm = smtplib.SMTP(param['smtpserver'], port=25) # sm.set_debuglevel(1) sm.ehlo() sm.starttls() sm.ehlo() sm.login(param['username'], param['password']) sm.sendmail(param['from_addr'], param['to_addr'], msg.as_string()) sleep(5) sm.quit() print "%s send successfully" % param['file_path'] flag = True except Exception, ex: traceback.print_exc() print "send Failed " flag = False error = "error %s" % str(ex) finally: return flag, error
Atas ialah kandungan terperinci 使用python实现发送邮件方法 . Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!