欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python连载56-发送带有附件、正文为HTML的邮件

程序员文章站 2022-07-02 12:24:14
一、HTML格式怎么发送右键 1.准备HTML代码作为内容 2.把邮件的subtype设置为html 3.发送 4.举个例子:自己发给自己一个HTML格式的文件 from email.mime.text import MIMEText ​ main_content = """

一、html格式怎么发送右键

1.准备html代码作为内容

2.把邮件的subtype设置为html

3.发送

4.举个例子:自己发给自己一个html格式的文件

 

from email.mime.text import mimetext

​

main_content = """

        <!doctype html>

        <html lang = "en"

        <head>

            <meta charset = "utf-8">

            <title>实例</title>

        </head>

        <body>

            <h1>这个是做测试用的html<h1>

        </body>

        </html>

        """

​

msg = mimetext(main_content,"html","utf-8")

​

#构建发送者地址和登录信息

from_addr = "1215217867@qq.com"

from_pwd = ""

#构建邮件接受者的信息

to_addr = "1215217867@qq.com"

smtp_srv = "smtp.qq.com"

try:

    import smtplib

    srv = smtplib.smtp_ssl(smtp_srv.encode(),465)

    srv.login(from_addr,from_pwd)

    srv.sendmail(from_addr,[to_addr],msg.as_string())

    srv.quit()

​

except exception as a:

    print(a)
Python连载56-发送带有附件、正文为HTML的邮件

二、发送带附件的邮件

1.可以把邮件看作是一个文本邮件和一个附件的合体

2.一封邮件如果涉及多个部分,需要使用mimemultipart格式构建

3.添加一个mimetext正文

4.添加一个 mimebase或者memetext作为附件

5.举个例子:

 

from email.mime.text import mimetext#构建附件使用

from email.mime.multipart import mimebase,mimemultipart#构建基础邮件使用

​

mail_mul = mimemultipart()#构建一个邮件对象

mail_text = mimetext("hello,i am liudana","plain","utf-8")#构建邮件正文

mail_mul.attach(mail_text)#把构建好的邮件正文附加到邮件中

#构建附件,需要从本地读入附件

#打开一个本地文件

#以rb格式打开

with open("00.testcasepython.py","rb") as  f:

    s = f.read()

    #设置附件的mime和文件名

    m = mimetext(s,"base64","utf-8")#类型是base64,这是邮件正文的格式,这里只需要记住就可以了

    m["content-type"] = "application/octet-stream"

    #需要注意

    #1.attachment后分号位英文状态

    #2.filename后面需要引号包裹,注意与外面引号错开

    m["content-disposition"] = "attachment;filename = '00.testcasepython.py'"

    #添加到mimemultipart

    mail_mul.attach(m)

​

#构建发送者地址和登录信息

from_addr = "1215217867@qq.com"

from_pwd = "ysqmojzwkgfciccd"

#构建邮件接受者的信息

to_addr = "1215217867@qq.com"

smtp_srv = "smtp.qq.com"

try:

    import smtplib

    srv = smtplib.smtp_ssl(smtp_srv.encode(),465)

    srv.login(from_addr,from_pwd)

    srv.sendmail(from_addr,[to_addr],mail_mul.as_string())

    srv.quit()

​

except exception as a:

    print(a)

Python连载56-发送带有附件、正文为HTML的邮件三、源码

d55_2_htmlmailsend.py

d55_3_sendattachmentmail.py

https://github.com/ruigege66/python_learning/blob/master/d55_2_htmlmailsend.py

https://github.com/ruigege66/python_learning/blob/master/d55_3_sendattachmentmail.py

2.csdn:https://blog.csdn.net/weixin_44630050

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

 Python连载56-发送带有附件、正文为HTML的邮件