zoukankan      html  css  js  c++  java
  • python之路:发附带文件的邮件

    发邮件的思路(借用第三方服务):

    1、模拟服务器其中有:服务器地址,发送者地址、发送者的密码

    2、创建一个带附件的实例:1、创建一个massage 2、massage包括发送者的地址、接受者的地址、标题

    3、对正文转化为文本模式,MIMEText函数,它的参数有:邮件的内容或文件(文档、视频、图片这一些你都要读取文件才能发送)名)、邮件的格式、utf-8

    4、添加正文:用attach函数,可以运用多个attach函数传递文件

    5、发邮件:进入服务端(登录)login登录函数、发送sendmail发送),需要的参数有:发送的地址、接收者、message.as_string()

    import smtplib
    from email.mime.text import MIMEText
    from email.mime.multipart import MIMEMultipart
    from email.header import Header

     

    #模拟服务器
    #SMTP服务器
    SMTPServer="smtp.163.com"
    #发邮件的地址
    Sender="xxxx@163.com"
    #发送者邮件的授权密码
    passwd="xxxxx"  

    # 创建一个带附件的实例
    message = MIMEMultipart()
    message['From'] = Sender

    message['To'] = "xxxx@qq.com"
    subject = 'Python SMTP 邮件测试'
    message['Subject'] = subject
    # 邮件正文内容
    message.attach(MIMEText('这是菜鸟教程Python 邮件发送测试……', 'plain', 'utf-8'))

    # 构造附件1

    att1 = MIMEText(open('文件名', 'rb').read(), 'base64', 'utf-8')
    att1["Content-Type"] = 'application/octet-stream'
    # 这里的filename可以任意写,写什么名字,邮件中显示什么名字
    att1["Content-Disposition"] = 'attachment; filename="文件名"'
    message.attach(att1)

    # 构造附件2

    att2 = MIMEText(open('文件名', 'rb').read(), 'base64', 'utf-8')
    att2["Content-Type"] = 'application/octet-stream'
    att2["Content-Disposition"] = 'attachment; filename="文件名"'
    message.attach(att2)

    try:
           mailServer = smtplib.SMTP(SMTPServer, 25)  # 25为端口号(邮件),0-1024都被系统占用了
        # 登录邮箱
        mailServer.login(Sender, passwd)  # 需要的是,邮箱的地址和授权密码
        # 发送文件
        mailServer.sendmail(Sender, ["xxxx@qq.com"], message.as_string())
        print("邮件发送成功")
    except smtplib.SMTPException:
        print("Error: 无法发送邮件")

  • 相关阅读:
    DevExpress.XtraBars.BarManager去掉分割线/分隔符
    C# ToShortDateString() ToString() 设置日期格式的区别
    DevExpress.XtraEditors.TextEdit绑定数据后,不输入内容,出现 “Invalid Value” 无效值错误
    stuff(select ',' + fieldname from tablename for xml path('')),1,1,'')
    string、Empty和null三者的区别
    js数组定义
    Clementine学习
    实现getElementsByClassName
    如何让ajax执行完后再继续往下执行?
    java中arraylist和数组的转换
  • 原文地址:https://www.cnblogs.com/MyUniverse/p/9362574.html
Copyright © 2011-2022 走看看