• python smtplib发送邮件


    python 发送邮件

    smtplib模块负责发送邮件:是一个发送邮件的动作,连接邮箱服务器,登录邮箱,发送邮件(有发件人,收信人,邮件内容)。

    email模块负责构造邮件:指的是邮箱页面显示的一些构造,如发件人,收件人,主题,正文,附件等。

    email模块下有mime包,mime英文全称为“Multipurpose Internet Mail Extensions”,即多用途互联网邮件扩展,是目前互联网电子邮件普遍遵循的邮件技术规范。

    该mime包下常用的有三个模块:text,image,multpart

    import smtplib
    from email.mime.text import MIMEText
    from email.mime.multipart import MIMEMultipart
    from email.header import Header
    
    #邮件服务器信息
    smtp_server = "smtp.qq.com"
    port = 465  # For starttls
    sender_email = "12345689@qq.com"
    password=""  #get password from mailsetting
    
    #发送邮件信息,可以发送给多个收件人
    receivers=["12345689@163.com","12345689@qq.com"]
    subject="This is import Python SMTP 邮件(文件传输) 多媒体测试"
    
    # message = MIMEText(text, "plain", "utf-8") #文本邮件
    message = MIMEMultipart()
    message["Subject"] = Header(subject, "utf-8")
    message["from"] = sender_email
    message["to"] = ",".join(receivers)
    # 邮件正文内容
    text="""
    Dear Sir:
    how are you ? 
    
    for detail information pls refer to attach1。
    
    The files you need are as followed.
    
    If you have any concern pls let me known.
    
    enjoy your weekend.
    
    BEST REGARDS 
    
    """
    # message.attach(MIMEText('for detail information pls refer to attach1。
     The files you need are as followed. 
     If you have any concern pls let me known. 
     enjoy your weekend', 'plain', 'utf-8')
    message.attach(MIMEText(text,'plain','utf-8'))
    
    # 构造附件1
    attach_file1='IMG1965.JPG'
    
    attach1 = MIMEText(open(attach_file1, 'rb').read(), 'base64', 'utf-8')
    attach1["Content-Type"] = 'application/octet-stream'
    attach1["Content-Disposition"] = 'attachment; filename={0}'.format(attach_file1)
    message.attach(attach1)
    
    # 构造附件2
    attach_file2='YLJ.jpg'
    attach2 = MIMEText(open(attach_file2, 'rb').read(), 'base64', 'utf-8')
    attach2["Content-Type"] = 'application/octet-stream'
    attach2["Content-Disposition"] = 'attachment; filename={0}'.format(attach_file2)
    message.attach(attach2)
    
    # Try to log in to server and send email
    # server = smtplib.SMTP_SSL(smtp_server,port)
    server = smtplib.SMTP_SSL(smtp_server,port)
    
    try:
        server.login(sender_email, password)
        server.sendmail(sender_email,receivers,message.as_string())
        print("邮件发送成功!!!")
        print("Mail with {0} & {1} has been send to {2} successfully.".format(attach_file1,attach_file2,receivers))
    except Exception as e:
        # Print any error messages to stdout
        print("Error: 无法发送邮件")
        print(e)
    finally:
        server.quit()

    结果

    邮件发送成功!!!
    Mail with IMG1965.JPG & IMG1963.jpg has been send to ['12345689@163.com', '12345689@qq.com'] successfully.

  • 相关阅读:
    C++中使用多线程
    hdu 4223 dp 求连续子序列的和的绝对值最小值
    hdu 1372 bfs 计算起点到终点的距离
    hdu 4217 线段树 依次取第几个最小值,求其sum
    心得
    hdu 1175 bfs 按要求进行搜索,是否能到达,抵消两个(相同)棋子
    hdu 4221 greed 注意范围 工作延期,使整个工作时间罚时最少的单个罚时最长的值
    hdu 2844 多重背包 多种硬币,每一种硬币有一点数量,看他能组成多少种钱
    uva LCDDisplay
    hdu 4218 模拟 根据一个圆点和半径画一个圆 注意半径要求
  • 原文地址:https://www.cnblogs.com/tingxin/p/12961901.html
Copyright © 2020-2023  润新知