首页 > 编程语言 > 详细

python发送邮件

时间:2020-11-26 22:33:16      阅读:34      评论:0      收藏:0      [点我收藏+]

一、使用前准备

以qq邮箱为例,在设置—账户中开启smtp服务。

技术分享图片

二、发送普通文本

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

# 发送方邮箱
from_addr = ‘xxx@qq.com‘
# 发送方的授权码,这里是qq邮箱给你的授权码,16位的英文
password = ‘‘

# 接收方的邮箱,包含多个对象可以为列表
to_addr = ‘xxx@qq.com‘
# qq邮箱的smtp服务器地址 
smtp_server = ‘smtp.qq.com‘
content = ‘消息主题‘
subject = ‘邮件标题‘

# plain表示纯文本
msg = MIMEText(content, ‘plain‘. ‘utf-8‘)

# 构建邮件头
msg[‘From‘] = Header(from_addr)
msg[‘To‘] = Header(to_addr)
msg[‘Subject‘] = Header(subject, ‘utf-8‘)

# 构建连接服务
server = smtplib.SMTP_SSL(smtp_server)
server.connect(smtp_server, 465)

# 登录邮件服务器
server.login(from_addr, password)

# 发送邮件
server.sendmail(from_addr, to_addr, msg.as_string())

三、发送html包含图片

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


from_addr = ‘2876137056@qq.com‘
password = ‘ojyzjelcqnnidghf‘

to_addr = ‘2876137056@qq.com‘
smtp_server = ‘smtp.qq.com‘

content = """
<h1>这是一级标题</h1>
<p><img src="cid:image1"></p>
"""
subject = ‘邮件标题‘
msg_root = MIMEMultipart()
msg_root[‘From‘] = Header(from_addr)
msg_root[‘To‘] = Header(to_addr)
msg_root[‘Subject‘] = Header(subject, ‘utf-8‘)

# 邮件主体
msg_root.attach(MIMEText(content, ‘html‘, ‘utf-8‘))

# 指定图片
fp = open(‘test.jpg‘, ‘rb‘)
msgImage = MIMEImage(fp.read())
fp.close()

# 定义图片ID,在HTML文本中引用
msgImage.add_header(‘Content-ID‘, ‘<image1>‘)
msg_root.attach(msgImage)


# 启动服务
server = smtplib.SMTP_SSL(smtp_server)
server.connect(smtp_server, 465)

server.login(from_addr, password)

server.sendmail(from_addr, to_addr, msg_root.as_string())
server.close()

四、发送带附加的邮件

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

from_addr = ‘xxx@qq.com‘
password = ‘‘

to_addr = ‘‘
smtp_server = ‘smtp.qq.com‘

content = ‘邮件内容‘
subject = ‘邮件标题‘
msg_root = MIMEMultipart()
msg_root[‘From‘] = Header(from_addr)
msg_root[‘To‘] = Header(to_addr)
msg_root[‘Subject‘] = Header(subject, ‘utf-8‘)

# 邮件正文
att1 = MIMEText(open(‘test.txt‘, ‘rb‘).read(), ‘base64‘, ‘utf-8‘)
att1["Content-Type"] = ‘application/octet-stream‘
# filename随便写,这是你发送过去的邮件中显示的名字
att1["Content-Disposition"] = ‘attachment; filename="test.txt"‘
msg_root.attach(att1)

# 启动服务
server = smtplib.SMTP_SSL(smtp_server)
server.connect(smtp_server, 465)

server.login(from_addr, password)
server.sendmail(from_addr, to_addr, msg_root.as_string())
server.close()

python发送邮件

原文:https://www.cnblogs.com/journeyer-xsh/p/14044462.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!