zoukankan      html  css  js  c++  java
  • python发送邮件

    一.获取邮箱授权(以QQ邮箱为例子)

    点击设置>账号

    开启服务:POP3/SMTP服务 选择开启

    然后获取授权码xxx

    二.发送文本

    import smtplib
    from email.mime.text import MIMEText
    
    subject = "标题"  # 邮件的主题
    content = '测试'   #内容
    sender = "568972484@qq.com"  # 发件人
    password = 'xxx'  # 刚才我们在QQ邮箱里设置的授权密码
    receiver = "568972484@qq.com"  # 收件人
    
    
    message = MIMEText(content, "html", "utf-8")   #内容,格式,编码格式
    message["From"] = sender        #发送邮箱
    message["To"] = receiver        #收邮箱
    message["Subject"] = subject    #标题
    
    smtp = smtplib.SMTP_SSL('smtp.qq.com', 465)    #QQ邮箱的SMTP服务器(端口465或587)
    smtp.login(sender, password)      #发送邮箱和密码         
    smtp.sendmail(sender, receiver, message.as_string())  
    smtp.close()
    

    三.发送文本中带图片

    import smtplib
    from email.mime.multipart import MIMEMultipart
    from email.mime.text import MIMEText
    from email.mime.image import MIMEImage
    
    
    subject = "图片测试"  # 邮件的主题
    content = """
    <p>Python 邮件发送测试...</p>
    <p><img src="cid:image1"></p>
    """
    sender = "568972484@qq.com"  # 发件人
    password = 'xxx'  # 刚才我们在QQ邮箱里设置的授权密码
    receiver = "568972484@qq.com"  # 收件人
    
    msgRoot = MIMEMultipart("related")
    msgRoot["From"] = sender
    msgRoot["To"] = receiver
    msgRoot["Subject"] = subject
    
    
    #添加文本
    msgAlternative = MIMEMultipart('alternative')
    msgRoot.attach(msgAlternative)
    msgAlternative.attach(MIMEText(content, 'html', 'utf-8'))
    
    
    # 指定图片为当前目录
    fp = open('C:/Users/Administrator/Desktop/1.png', 'rb')
    msgImage = MIMEImage(fp.read())
    fp.close()
    
    #attach为添加
    # 定义图片 ID,在 HTML 文本中引用
    msgImage.add_header('Content-ID', '<image1>')
    msgRoot.attach(msgImage)
    
    smtp = smtplib.SMTP_SSL('smtp.qq.com', 465)
    smtp.login(sender, password)
    smtp.sendmail(sender, receiver, msgRoot.as_string())
    smtp.close()
    
    

    四,发送文件附件

    import smtplib
    from email.mime.image import MIMEImage
    from email.mime.text import MIMEText
    from email.mime.multipart import MIMEMultipart
    
    
    subject = "标题"  # 邮件的主题
    content = '文件测试'   #内容
    sender = "568972484@qq.com"  # 发件人
    password = 'xxxx'  # 刚才我们在QQ邮箱里设置的授权密码
    receiver = "568972484@qq.com"  # 收件人
    
    
    msgRoot = MIMEMultipart("related")
    msgRoot["From"] = sender
    msgRoot["To"] = receiver
    msgRoot["Subject"] = subject
    
    
    #添加文本
    msgAlternative = MIMEMultipart('alternative')
    msgRoot.attach(msgAlternative)
    msgAlternative.attach(MIMEText(content, 'html', 'utf-8'))
    
    
    # 构造附件1,传送当前目录下的 test.png 文件
    att1 = MIMEImage(open('C:/Users/Administrator/Desktop/1.png', 'rb').read())
    att1["Content-Type"] = 'application/octet-stream'
    # 这里的filename可以任意写,写什么名字,邮件中显示什么名字
    att1["Content-Disposition"] = 'attachment; filename="test.png"'
    msgRoot.attach(att1)
    
    
    smtp = smtplib.SMTP_SSL('smtp.qq.com', 465)    #QQ邮箱的SMTP服务器(端口465或587)
    smtp.login(sender, password)      #发送邮箱和密码
    smtp.sendmail(sender, receiver, msgRoot.as_string())
    smtp.close()
    

    五.补充MIMEMultipart的可选类型

    MIMEMultipart(‘mixed’) #如果一封邮件中含有附件
    MIMEMultipart(‘alternative’)#可以传送超文本内容,但出于兼容性的考虑,一般在发送超文本格式内容的同时会同时发送一个纯文本内容的副本
    MIMEMultipart(‘related’) #除了可以携带各种附件外,还可以将其它内容以内嵌资源的方式存储在邮件中
    
  • 相关阅读:
    CMake 手册详解(十九)
    CMake 手册详解(二十三)
    CMake 手册详解(二十)
    xtrabackupex xbstream 流备份还原(转载)
    xtrabackup 安装与使用(转载)
    怎么样写好一篇技术博客
    python为什么需要符号表
    cmake的一些基本概念及源码结构
    让IT工作者过劳的13个坏习惯
    SHTML和HTML的区别
  • 原文地址:https://www.cnblogs.com/pythonywy/p/11861090.html
Copyright © 2011-2022 走看看