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.

  • 相关阅读:
    (二分查找 拓展) leetcode 69. Sqrt(x)
    (二分查找 拓展) leetcode 162. Find Peak Element && lintcode 75. Find Peak Element
    (链表) lintcode 219. Insert Node in Sorted Linked List
    (二分查找 拓展) leetcode 34. Find First and Last Position of Element in Sorted Array && lintcode 61. Search for a Range
    (最短路 Floyd) P2910 [USACO08OPEN]寻宝之路Clear And Present Danger 洛谷
    (字符串 数组 递归 双指针) leetcode 344. Reverse String
    (二叉树 DFS 递归) leetcode 112. Path Sum
    (二叉树 DFS 递归) leetcode 101. Symmetric Tree
    (二叉树 递归) leetcode 144. Binary Tree Preorder Traversal
    (二叉树 递归 DFS) leetcode 100. Same Tree
  • 原文地址:https://www.cnblogs.com/tingxin/p/12961901.html
Copyright © 2011-2022 走看看