发送邮件,可带附件,可群发
发布时间:2020-05-25 01:04:01 所属栏目:Python 来源:互联网
导读:发送邮件,可带附件,可群发
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。 # 这是发布本信息时的版本,请以github上的为主要参考
def send_email(login=None,mail=None,images=None,attachments=None,use_ssl=None):
smtpserver = login.get("smtpserver")
username = login.get("username")
password = login.get("password")
email_type = mail.get('email_type')
From = mail.get('from')
To = mail.get('to')
Subject = mail.get('subject')
content = mail.get('content')
if not To:
To = username
if isinstance(To,list):
To = ','.join(To)
if not email_type or (email_type not in ("plain","html")):
email_type = "html"
main_msg = MIMEMultipart()
main_msg['Subject'] = Subject
main_msg['From'] = From
main_msg['To'] = To
text_msg = MIMEText(content,email_type,'utf-8')
main_msg.attach(text_msg)
if images:
for f in images:
fp = open(f,'rb')
img_msg = MIMEImage(fp.read())
fp.close()
basename = os.path.basename(f)
img_msg.add_header('content-disposition','image' + str(images.index(f)),filename=basename)
main_msg.attach(img_msg)
if attachments:
for f in attachments:
basename = os.path.basename(f)
if "." in basename:
content_type = mimetypes.types_map["." + basename.split(".")[-1]]
else:
content_type = 'application/octet-stream'
maintype,subtype = content_type.split('/',1)
fp = open(f,'rb')
file_msg = MIMEBase(maintype,subtype)
file_msg.set_payload(fp.read())
fp.close()
encoders.encode_base64(file_msg)
file_msg.add_header('Content-Disposition','attachment' + str(images.index(f)),filename=basename)
main_msg.attach(file_msg)
smtp = smtplib.SMTP(smtpserver)
if use_ssl:
smtp.ehlo()
smtp.starttls()
smtp.ehlo()
smtp.login(username,password)
smtp.sendmail(From,To,main_msg.as_string())
smtp.quit()
以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
