Python发送HTML邮件的9个代码示例


【蜂邮EDM】:邮件群发系统,EDM邮件营销平台,邮件代发服务。 查看价格
【AokSend邮件API】:触发式邮件API,15元/万封,99%送达率。 查看价格
【烽火邮箱】:新人领取免费域名邮箱,可用作企业邮箱公司邮箱。 查看价格
Python发送HTML邮件的9个代码示例
在现代邮件营销中,发送HTML邮件是提升用户体验和提高打开率的重要手段。使用Python编写邮件发送脚本,可以轻松实现这一点。本文将详细讲解如何在Python中发送HTML邮件,并提供9个实用的代码示例,帮助您快速上手。
代码示例1:使用PyYAML生成HTML邮件模板
PyYAML是一个功能强大的邮件模板生成工具,可以帮助您快速创建HTML邮件模板。以下是使用PyYAML生成模板并发送邮件的完整代码。
代码解释
- 导入模块:使用
urllib.parse和sendmail模块进行URL解析和邮件发送。 - 配置参数:包括邮件发送的地址、密码、收件人地址和邮件模板文件。
- 解析模板文件:使用PyYAML解析HTML模板文件。
- 填充内容:将收件人信息插入到模板中。
- 发送邮件:使用
sendmail发送包含填充内容的邮件。
示例代码
from urllib.parse import urlparse, urlunparse
from sendmail import sendmail
# 邮件发送的地址和密码
from邮件发送地址邮件地址 from 邮件发送地址密码
to = 'your Recipient Email Address'
subject = '邮件主题'
# 邮件模板文件路径
template_file = 'your_template.html'
# 解析模板文件
with open(template_file, 'r') as f:
template = PyYAML.load(f)
# 填充内容
template['name'] = 'John Doe'
template['email'] = 'john@example.com'
# 发送邮件
sendmail(
from_=邮件发送地址,
to=to,
subject=subject,
msg=构建的字符串包含填充后的模板
)
代码示例2:使用 beautiful-ssl发送邮件
beautiful-ssl 是一个易于使用的邮件发送库,支持SSL/TLS加密。以下是使用 beautiful-ssl 发送HTML邮件的代码。
代码解释
- 安装库:使用
pip install beautiful-ssl安装库。 - 配置配置文件:创建
config.py文件,配置邮件发送的地址、密码和收件人地址。 - 发送邮件:使用
send邮件函数发送包含HTML内容的邮件。
示例代码
# 配置文件
import os
from beautiful_ssmail.sender import Sender
# 邮件发送地址和密码
sender_config = {
'from': 'your Sender Email Address',
'to': [' recipient email address'],
'password': 'your password',
'server': {
'host': 'smtp host',
'port': 587
},
'ssl': {
'cert': 'path to your certificate.pem',
'key': 'path to your key.pem'
}
}
# 创建发送器
sender = Sender(sender_config)
# 发送邮件
sender.send(
to= recipient_list,
subject=邮件主题,
msg=构建的字符串包含HTML内容
)
代码示例3:使用PyEmailypad生成邮件
PyEmailypad 是一个简单易用的邮件发送工具,支持HTML邮件。以下是使用 PyEmailypad 发送邮件的代码。
代码解释
- 安装库:使用
pip install pyemailypad安装库。 - 配置配置文件:创建
config.py文件,配置邮件发送的地址、密码和收件人地址。 - 发送邮件:使用
send邮件函数发送包含HTML内容的邮件。
示例代码
# 配置文件
import os
from pyemailypad import send_email
# 邮件发送地址和密码
from邮件发送地址邮件地址 from 邮件发送地址密码
to = 'your Recipient Email Address'
subject = '邮件主题'
# 邮件模板文件路径
template = '<html>
<body>
<div>Hello World from Python</div>
</body>
</html>'
# 发送邮件
send_email(
from_=邮件发送地址,
to=to,
subject=subject,
template=template
)
代码示例4:自定义HTML邮件发送函数
如果以上库无法满足您的需求,可以自定义HTML邮件发送函数。以下是自定义函数的代码。
代码解释
- 自定义函数:
send_html_email函数接收邮件内容、主题和收件人地址,并返回HTML格式的邮件内容。 - 发送邮件:使用
urllib.parse和sendmail模块发送邮件。
示例代码
from urllib.parse import urlparse, urlunparse
from sendmail import sendmail
def send_html_email(html_content, subject, to_address):
# 创建邮件头信息
msg = f"""
<html>
<body>
<div>Hello, {to_address}!</div>
<p>这是一个测试邮件。请勿回复。</p>
</body>
</html>
"""
msg += html_content
# 解析地址
parsed_url = urlparse('your SMTP address')
if parsed_url.scheme == 'smtp':
url = urlunparse(
parsed_url._replace(
scheme='https',
netloc=parsed_url.netloc,
path=f'"{to_address}"'
)
)
else:
url = f'{parsed_url.scheme}://{parsed_url.netloc}/{to_address}'
sendmail(
from_=邮件发送地址,
to=[to_address],
subject=subject,
msg=msg
)
# 发送邮件
send_html_email(html_content='这是一个测试邮件。请勿回复。', subject='测试邮件', to_address=' recipient email address')
代码示例5:使用PyPDF2发送HTML邮件
PyPDF2 是一个用于处理PDF文件的库,也可以用于生成HTML邮件。以下是使用 PyPDF2 发送邮件的代码。
代码解释
- 安装库:使用
pip install PyPDF2安装库。 - 配置配置文件:创建
config.py文件,配置邮件发送的地址、密码和收件人地址。 - 生成HTML邮件:使用PyPDF2生成包含HTML内容的PDF文件,然后将PDF文件转换为邮件。
示例代码
import PyPDF2
# 配置文件
config = {
'from': 'your Sender Email Address',
'to': [' recipient email address'],
'password': 'your password',
'subject': '邮件主题'
}
# 创建PDF writer
pdf_writer = PyPDF2.PdfWriter()
pdf_writer.addPage(PyPDF2.PdfPage())
pdf_writer.encrypt()
# 将PDF转换为邮件
sendmail.send邮件(
from_=邮件发送地址,
to=recipient_list,
subject=config['subject'],
msg=pdf_writer.dumps()
)
代码示例6:使用Twilio发送邮件
Twilio 是一个提供短信和语音服务的平台,也可以用于发送HTML邮件。以下是使用 Twilio 发送邮件的代码。
代码解释
- 安装库:使用
pip install twilio安装库。 - 配置 Twilio 账户:在Twilio控制台创建 Twilio 账户,并获取公共钥匙、凭据和认证密钥。
- 发送邮件:使用 Twilio API发送包含HTML内容的邮件。
示例代码
from twilio.rest import Client
# 从 Twilio 控制台获取公共钥匙和凭据
account_SID = 'your account SID'
access_KEY = 'your access key'
auth_token = 'your auth token'
client = Client(account SID, access key, auth token)
# 发送邮件
messages = client.messages.create(
to= recipient email address,
from_= ' Twilio Send Email Address',
body= <html>
<body>
<div>Hello World from Twilio</div>
</body>
</html>
)
代码示例7:使用MailerLite发送邮件
MailerLite 是一个功能强大的邮件发送工具,支持HTML邮件。以下是使用 MailerLite 发送邮件的代码。
代码解释
- 安装库:使用
pip install pymailerlite安装库。 - 配置配置文件:创建
config.py文件,配置邮件发送的地址、密码和收件人地址。 - 发送邮件:使用 MailerLite 发送包含HTML内容的邮件。
示例代码
# 配置文件
import os
from pymailerlite import mailer, config
config.set(
from_=邮件发送地址,
to=[' recipient email address'],
subject='邮件主题',
template='your template.html'
)
# 发送邮件
mailer.send([{'to': ' recipient email address', 'content': '<html>...</html>'}], force=True)
代码示例8:使用Postman发送邮件
Postman 是一个功能强大的HTTP客户端,可以用于发送邮件。以下是使用 Postman 发送邮件的代码。
代码解释
- 访问 Postman:访问 Postman 并找到“Email”服务。
- 配置请求:在请求头中设置
From、To和Subject,并在请求体中包含HTML内容。 - 发送请求:发送 POST 请求,获取响应。
示例代码
# 发送邮件
response = requests.post(
'https://smtp.example.com:587/MAIL FROM: your Sender Email Address',
headers={
'From': ' your Sender Email Address',
'To': ' recipient email address',
'Subject': '邮件主题'
},
data={
'body': '<html>...</html>'
}
)
代码示例9:使用Mailgun发送邮件
Mailgun 是一个提供邮件发送服务的平台,支持HTML邮件。以下是使用 Mailgun 发送邮件的代码。
代码解释
- 注册 Mailgun 账户:访问 Mailgun 网站注册并获取 API 密钥。
- 配置请求:在请求头中设置
From、To和Subject,并在请求体中包含HTML内容。 - 发送请求:发送 POST 请求,获取响应。
示例代码
import requests
# 从 Mailgun 获取 API 密钥
api_key = 'your API key'
# 发送邮件
response = requests.post(
'https://api.mailgun.net/v3/sends',
headers={
'Content-Type': 'application/json',
'From': ' your Sender Email Address',
'To': ' recipient email address',
'Subject': '邮件主题'
},
data={'body': '<html>...</html>'},
auth=('your API key', '')
)
结论
以上是 Python发送HTML邮件的9个代码示例,涵盖了不同的库和工具,包括PyYAML、beautiful-ssl、PyEmailypad、Twilio、MailerLite、Postman和Mailgun等。通过这些代码,您可以轻松实现发送HTML邮件的功能。希望这些代码对您有所帮助!



【蜂邮EDM】:邮件群发系统,EDM邮件营销平台,邮件代发服务。 查看价格
【AokSend邮件API】:触发式邮件API,15元/万封,99%送达率。 查看价格
【烽火邮箱】:新人领取免费域名邮箱,可用作企业邮箱公司邮箱。 查看价格
【烽火邮箱】:烽火邮箱是一款简洁高效的企业邮箱平台,新客户赠送免费企业邮箱,一个起卖、按月付费(低至9.9元);支持别名邮箱及群组邮箱,支持定制无限邮箱。高权重纯净IP池,系统自带反垃圾机制。
立即查看 >> :企业邮箱价格
【蜂邮EDM】:邮件群发系统,EDM邮件营销平台,邮件代发服务,专业研发定制邮件营销系统及邮件群发解决方案!蜂邮自研产品线主要分为标准版、外贸版、企业版、定制版,及邮件API邮件SMTP接口服务。
立即查看 >> :邮件发送价格
【AokSend邮件API】:专注触发式邮件API发送服务。15元/万封,发送验证码邮件、忘记密码邮件、通知告警邮件等,不限速。综合送达率99%、进箱率98%。触发邮件也叫事务性邮件或推送邮件,包含:验证码邮件、重置密码邮件、余额提醒邮件、会员到期邮件、账号认证邮件等!
立即查看 >> :邮件发送价格
