Python发邮件,带附件和HTML

本文介绍了如何使用Python的smtplib和email库发送邮件,包括纯文本邮件和包含图片及超链接的复杂邮件。首先讲解了开启邮箱授权码的步骤,然后展示了两个示例,第一个是发送纯文本邮件,第二个则增加了图片和HTML链接,使得邮件内容更丰富。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        Python好用、好玩的库真的超多,今天正好看了smtplib的邮件库,废话不多说,翠花,上酸菜。

        前言:先要自行百度一下,邮箱授权码的开启步骤,使用第三方服务登录时候需要使用邮箱授权码。

# -*- coding: utf-8 -*-


# 发邮件
import smtplib
from email.mime.text import MIMEText # 文本
from email.header import Header


mail_host = 'smtp.163.com' # 指定SMTP服务器
mail_user = 'zhanglu_1024@126.com' # 发件人
mail_pass = 'FPGDC' # 授权码 并非密码,具体授权码开启方式百度,非常简单

sender = 'zhanglu_1024@126.com'
receivers = ['zhanglu_1024@163.com']

message = MIMEText('Python test_send_mail', 'plain', 'utf-8') # 参数分别为文本,格式,编码
message['From'] = sender
message['To'] = receivers[0]

subject = 'Python SMTP TEST'
message['Subject'] = Header(subject, 'utf-8')

try :
	smtpObj = smtplib.SMTP()
	smtpObj.connect(mail_host, 25)
	smtpObj.login(mail_user, mail_pass)
	smtpObj.sendmail(sender, receivers, message.as_string())
	print 'send success'
except smtplib.SMTPException :
	print 'send error'

邮件截图如下:

         太简单了,来个复杂点的:

import smtplib
from email.mime.text import MIMEText # 文本
from email.header import Header
from email.mime.image import MIMEImage # 图片
from email.mime.multipart import MIMEMultipart # 将多个对象集合起来


mail_host = 'smtp.163.com' # 指定SMTP服务器
mail_user = 'zhanglu_1024@126.com' # 发件人
mail_pass = 'KDFML' # 授权码 

sender = mail_user
receivers = ['zhanglu_1024@126.com',]

mime = MIMEMultipart('related')
mime['From'] = sender
mime['To'] = receivers[0] # 也可以使用 ','.join(receivers)  显示问题
mime['Subject'] = Header('Python Test_Send_Mail', 'utf-8')
mime.attach(MIMEText('this is a test mail', 'plain', 'utf-8')) # 填充文本
# 填充图片
image_data = open('timo.jpg', 'rb')
mime.attach(MIMEImage(image_data.read()))
image_data.close()
# 添加链接
html_data = '''
<p>Python邮件链接测试</p>
<p><a href='https://blog.youkuaiyun.com/zhanglu_1024?spm=1001.2101.3001.5343'>点这里</a></p>
'''
mime.attach(MIMEText(html_data, 'html', 'utf-8'))

try :
	smtpObj = smtplib.SMTP()
	smtpObj.connect(mail_host, 25)
	smtpObj.set_debuglevel(1)
	smtpObj.login(mail_user, mail_pass)
	smtpObj.sendmail(sender, receivers, mime.as_string())
	smtpObj.quit()
	print 'send success'
except smtplib.SMTPException :
	print 'send error'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值