• python自动发送邮件


    python自动发送邮件

    学习完本篇,你将会

    • 了解邮件协议
    • 编写一个邮件系统

    了解邮件SMTP协议

    • SMTP:即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件。
    • 发送邮件一般有两种形式,一种是通过邮箱web,另一种是下载邮箱客户端,配置邮箱账号密码,邮箱服务器,就可以发送,python类似第二种方式。
    • SMTP协议比较复杂,使用过程中,只需要知道一下几点:
      1.host:指定连接的邮箱服务器
      2.port:指定连接服务器的端口号
      3.user:登陆邮箱用户名
      4.password:登陆邮箱密码
      5.from_addr:邮箱发送者地址
      6.to_addrs:字符串列表,邮件发送地址
      7.msg:发送消息

    简单发送HTML格式邮件

    实例:
    import smtplib
    from email.mime.text import MIMEText
    from email.header import Header
    
    #发送邮件服务器
    smtpserver = ‘’ smtp.163.com”
    #发送用户名密码:
    user = ‘username@163.com’
    password = ‘123456’
    #发送邮箱
    sender = ‘username@163.com’
    #接受邮箱
    receiver =  ‘receive@qq.com’
    
    subject = “python email test” 
    
    #发送主体
    msg = MIMEText('<html><h1>你好!</h1></html>','html','utf-8')
    msg["Subject"] = Header(subject,'utf-8')
    
    #邮箱发送者地址以及收件人地址
    msg['From'] = sender
    msg['To'] = receiver
    #连接邮件
    smtp = smtplib.SMTP()
    smtp.connect(smtpsever)
    smtp.login(user,password)
    smtp.sendmail(sender,receiver,msg.as_string())
    smtp.quit()
    

    例子中除用到smtplib模块外,还用到email模块,通过email模块来定义邮件的标题和正文,Header()函数用来定义邮件标题,MIMEText()用于定义邮件正文,参数html格式的文本。

    带附件发送HTML格式邮件

    实例:
    import smtplib
    from email.mime.text import MIMEText
    from email.header import Header
    
    #发送邮件服务器
    smtpserver = ‘’ smtp.163.com”
    #发送用户名密码:
    user = ‘username@163.com’
    password = ‘123456’
    #发送邮箱
    sender = ‘username@163.com’
    #接受邮箱
    receiver =  ‘receive@qq.com’
    #主题
    subject = “python email test” 
    #附件内容
    sendfile = open(‘D:\report\log.txt’,’rb’).read()
    #发送附件
    att = MIMEText(sendfile,’base64’,’utf-8’)
    att[“Content-Type”] =  ‘application/octet-stream’
    msgRoot=MIMEMultipart(‘related’)
    msgRoot['From'] = sender
    msgRoot['To'] = receiver
    msgRoot['Subject'] = Header(subject,'utf-8')
    msgRoot.attach(msg)
    #连接邮件
    smtp = smtplib.SMTP()
    smtp.connect(smtpsever)
    smtp.login(user,password)
    smtp.sendmail(sender,receiver, msgRoot.as_string())
    smtp.quit()
    

    左侧通过读文件内容,把文件内容添加MIMEText参数中,修改文件形式,从而更改方邮件功能

    其它的内容发送可参考:
    http://www.jb51.net/article/49216.htm

    测试
  • 相关阅读:
    OkHttp的基本使用方法
    C#中Dictionary小记
    SQL Server表的数据量大小查询
    基于.NET平台常用的框架整理
    JQuery中ajax的相关方法总结
    JQuery中的工具函数总结
    Asp.net MVC 中Controller返回值类型ActionResult
    Plupload文件上传组件使用API
    HTTP 方法:GET 对比 POST
    C#使用简单邮件传输协议(SMTP)发送邮件
  • 原文地址:https://www.cnblogs.com/package/p/15315766.html
Copyright © 2020-2023  润新知