加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

发送邮件,可带附件,可群发

发布时间:2020-12-17 17:10:42 所属栏目:Python 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 # 这是发布本信息时的版本,请以github上的为主要参考def send_email(login=None,mail=None,images=None,attachments=None,use_ssl=None): smtpserver

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

# 这是发布本信息时的版本,请以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()
    

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读