Python-Foxmail邮件发送程序记录

目的:

(1)发送邮件,其中邮件包括指定的信息内容;

(2)发送邮件,其中可插入图片,可导入附件,信息内容等;

1、导入需要的库

import smtplib
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr

2、编写主程序:实现目的(1)

import smtplib
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr

'''
================================
=====Foxmail发送邮件流程实现=====
================================
'''
# 输入Email地址和口令:
from_addr = 'xxxxxxxxxxxxxx'       
password =  'xxxxxxx'

# 输入收件人地址:
to_addr = "xxxxxxxxxxxx"
# 输入SMTP服务器地址:
smtp_server = "pop.exmail.qq.com"

# 返回邮件发送格式
def shuju(s):
    name,addr = parseaddr(s)
    return formataddr((Header(name, 'utf-8').encode(), addr))

# 发送邮件内容
# MIMEText对象,第一个参数是邮件正文,第二个参数是MIME的subtype,传入'plain'表示纯文本,最终的MIME就是'text/plain',最后的utf-8编码保证多语言兼容性。
# msg = MIMEText('这是一个自动发送的邮件..', 'plain', 'utf-8')

'''发送HTML邮件'''
neirong ='''<html>
    <!-- 网页的标题、图标... -->
    <head>
        <mate charset="utf-8">
        <title>第一个网页</title>
    </head>
    <!-- 网页的具体内容 -->
    <body>
        这是网页的内容
        <a href="http://www.baidu.com" target="_blank">百度</a>

        <h1>999999999999</h1>
        <h2>666666666</h2>
        <h3>666666666</h3>
        <h4>666666666</h4>
        <h5>666666666</h5>

        <p>ppppppppppp</p>

    <div>
        <p>ppppppppppp</p>
    </div>

        <ul>
            <li>hahaha</li>
            <li>hahaha</li>
            <li>hahaha</li>
        </ul>

        <ol>
            <li>ahahah</li>
            <li>ahahah</li>
            <li>ahahah</li>
        </ol>
    </body>
</html>'''

# 添加正文内容
msg = MIMEText(neirong, 'html', 'utf-8')

# 设置邮件的主题
msg['Subject'] = Header('来自神秘人的问候……', 'utf-8').encode()

# 设置发件人
msg['From'] = shuju('自动发送 <%s>' % from_addr)   

# 设置收件人
msg['To'] = shuju('你好吗?<%s>' % to_addr)

# SMTP协议默认端口是25,建议不更改端口,否则,收件箱存在尝在卡顿现象,导致短时间内无法收取到邮件
server = smtplib.SMTP(smtp_server, 25)
# 设置调试级别
server.set_debuglevel(1)
# 登陆邮件
server.login(from_addr, password)
# 发送邮件
server.sendmail(from_addr, [to_addr], msg.as_string())
# 连接断开
server.quit()


 完成目的(1)的结果展示:

 3、编写主程序:实现目的(2)增加部分导入库

import smtplib
from email.header import Header
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email.utils import parseaddr, formataddr
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email import encoders
'''
================================
=====Foxmail发送邮件流程实现,插入图片,及附件=====
================================
'''
# 输入Email地址和口令:
from_addr = 'xxxxxxxxxxxxxxxxxx'       
password =  'xxxxxxxxx'

# 输入收件人地址:
to_addr = "xxxxxxxxxxxxxxx"
# 输入SMTP服务器地址:
smtp_server = "pop.exmail.qq.com"

# 返回邮件发送格式
def shuju(s):
    name,addr = parseaddr(s)
    return formataddr((Header(name, 'utf-8').encode(), addr))

# 邮件对象:
msg = MIMEMultipart()

# 设置邮件的主题
msg['Subject'] = Header('来自神秘人的问候……', 'utf-8').encode()

# 设置发件人
msg['From'] = shuju('自动发送 <%s>' % from_addr)   

# 设置收件人
msg['To'] = shuju('你好吗?<%s>' % to_addr)

# 邮件正文内容
mail_msg = """
<p>Python 邮件发送测试...</p>
<p><a href="http://www.runoob.com">这是一个链接</a></p>
<p>图片演示:</p>
<p><img src="cid:image1"></p>
"""
# 插入图片到正文
with open('4.png', 'rb') as f:
    img_data = f.read()
    img = MIMEImage(img_data)
# 定义ID图片,image1 对应上面邮件正文内容(html)中的标签,image1
img.add_header('Content-ID', '<image1>')
msg.attach(img)

# 构造图片附件,发送图片文件
with open('4.png', 'rb') as f:
    # 读取图片
    img = MIMEImage(f.read())
    # 修改图片名称和格式
    img.add_header('Content-Disposition', 'attachment', filename='image.jpg')
    msg.attach(img)

# 添加邮件正文内容
msg.attach(MIMEText(mail_msg, 'html', 'utf-8'))

# SMTP协议默认端口是25,建议不更改端口,否则,收件箱存在尝在卡顿现象,导致短时间内无法收取到邮件
server = smtplib.SMTP(smtp_server, 25)
# 设置调试级别
server.set_debuglevel(1)
# 登陆邮件
server.login(from_addr, password)
# 发送邮件
server.sendmail(from_addr, [to_addr], msg.as_string())
# 连接断开
server.quit()


  完成目的(2)的结果展示:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山中坐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值