zoukankan      html  css  js  c++  java
  • 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.

  • 相关阅读:
    108. Convert Sorted Array to Binary Search Tree
    How to check if one path is a child of another path?
    Why there is two completely different version of Reverse for List and IEnumerable?
    在Jenkins中集成Sonarqube
    如何查看sonarqube的版本 how to check the version of sonarqube
    Queue
    BFS广度优先 vs DFS深度优先 for Binary Tree
    Depth-first search and Breadth-first search 深度优先搜索和广度优先搜索
    102. Binary Tree Level Order Traversal 广度优先遍历
    How do I check if a type is a subtype OR the type of an object?
  • 原文地址:https://www.cnblogs.com/tingxin/p/12961901.html
Copyright © 2011-2022 走看看