发送html格式邮件需编写兼容性强的HTML内容并用正确方式发送。关键步骤包括:使用内联样式和表格布局确保兼容性,通过python的smtplib库或SendGrid等API发送,注意测试不同邮箱的显示效果。(149字符)

发送HTML格式的邮件,可以让内容更美观、信息更清晰,常用于营销邮件、通知公告或个性化消息。实现的关键在于正确编写HTML内容,并通过合适的工具或代码将其以HTML格式发送出去。下面介绍如何编写和发送HTML邮件。
编写HTML邮件内容
HTML邮件与网页类似,但需注意兼容性和简洁性,因为不同邮箱客户端对css和标签的支持程度不同。
建议遵循以下原则:
- 使用内联样式(inline CSS),避免外部或内部样式表
- 尽量使用表格布局(table-based layout),提高兼容性
- 避免使用javaScript和复杂css3特性
- 图片使用绝对URL,并添加alt文本
- 控制总宽度在600–800px之间,适配大多数设备
示例HTML内容:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> </head> <body style="font-family: Arial, sans-serif;"> <table width="600" cellpadding="0" cellspacing="0" align="center"> <tr> <td style="padding: 20px; background-color: #f0f0f0;"> <h2 style="color: #333;">您好,这是一封HTML邮件</h2> <p>欢迎查看我们的最新动态!</p> <a href="https://example.com" style="color: #007BFF; text-decoration: none;">点击了解更多</a> </td> </tr> </table> </body> </html>
使用Python发送HTML邮件
Python的smtplib和email库可以方便地发送HTML格式邮件。
立即学习“前端免费学习笔记(深入)”;
步骤如下:
示例代码:
import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart <h1>邮件配置</h1><p>sender = "your_email@example.com" receiver = "to_email@example.com" password = "your_password" # 推荐使用应用专用密码 smtp_server = "smtp.example.com" smtp_port = 587</p><h1>创建邮件对象</h1><p>msg = MIMEMultipart("alternative") msg["Subject"] = "HTML邮件测试" msg["From"] = sender msg["To"] = receiver</p><h1>HTML内容(可从文件读取或直接定义)</h1><p>html_content = """ <!DOCTYPE html> <html> <body> <h2 style="color:blue;">这是一封HTML格式的邮件</h2> <p>支持<strong>加粗</strong>和链接:<a href="<a href="https://www.php.cn/link/4a9f2c433adcc2698ba7704faedeaf82">https://example.com">访问网站</a></p></a>; </body> </html> """</p><h1>添加HTML部分</h1><p>part = MIMEText(html_content, "html", "utf-8") msg.attach(part)</p><h1>发送邮件</h1><p>try: server = smtplib.SMTP(smtp_server, smtp_port) server.starttls() // 启用加密 server.login(sender, password) server.sendmail(sender, receiver, msg.as_string()) server.quit() print("HTML邮件已成功发送") except Exception as e: print(f"发送失败:{e}")
使用邮件服务商API发送(如SendGrid、Mailgun)
对于正式项目或大量发送,推荐使用第三方邮件服务API,它们提供更好的送达率和管理功能。
以SendGrid为例:
- 注册账户并获取API密钥
- 安装sendgrid包:pip install sendgrid
- 调用API发送HTML邮件
代码片段:
import sendgrid from sendgrid.helpers.mail import Mail <p>sg = sendgrid.SendGridAPIClient(api_key='YOUR_SENDGRID_API_KEY')</p><p>message = Mail( from_email='from@example.com', to_emails='to@example.com', subject='HTML邮件', html_content=""" <h3>你好!</h3> <p>这是一封通过<strong>SendGrid API</strong>发送的HTML邮件。</p> """ )</p><p>try: response = sg.send(message) print("状态码:", response.status_code) except Exception as e: print(e.message)
基本上就这些。只要HTML结构合理,再配合正确的发送方式,就能顺利发出美观的HTML邮件。注意测试在不同邮箱(如Gmail、outlook)中的显示效果,确保兼容性。不复杂但容易忽略细节。


