Django发HTML邮件

本文介绍如何在Django项目中发送HTML格式的邮件,包括在setting.py中配置及在view.py中调用自定义函数SendMultiEmail,讨论了bcc功能的实现以及避免邮件乱码的技巧。

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

工作中一般不会只发纯文件格式的邮件,所以这一章讲发送HTML格式的邮件

setting.py

在setting.py的末尾加上如下代码:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'  #调用Django模块 一般不变
EMAIL_HOST ='smtp.qq.com' #邮件服务器,和你发邮件的邮箱相对应。企业用的话一般需要询问一下,每个企业有自己的邮箱服务器配置
EMAIL_PORT = 25   #端口 一般25
EMAIL_HOST_USER='247128642@qq.com' #发件箱:<span style="font-family: Arial;">可直接向外发送邮件的私人邮箱 或 </span>帮你向外转发邮件的企业提供的特殊邮箱(企业邮箱)
EMAIL_HOST_PASSWORD='123456' #密码

view.py

### DjangoHTML 邮件Django 应用程序中,可以通过 `EmailMessage` 类来实现 HTML 邮件送。此方法允许指定邮件的内容类型为 HTML 并支持附加替代内容(如纯文本版本),这对于确保所有客户端都能正确显示邮件非常重要。 为了构建并送一封含有 HTML 的电子邮件,在创建 `EmailMessage` 对象之后调用其 `attach_alternative()` 方法即可[^1]: ```python from django.core.mail import EmailMultiAlternatives, send_mail subject = '主题' from_email = '来自<example@domain.com>' to = ['接收者@example.com'] text_content = "这是默认的文字内容" html_content = "<p>这是一封<strong>重要的</strong>邮件。</p>" msg = EmailMultiAlternatives(subject, text_content, from_email, to) msg.attach_alternative(html_content, "text/html") msg.send() ``` 对于批量送多封不同内容的HTML邮件,则可以考虑使用 `send_mass_mail` 函数配合列表推导式生成多个消息元组[(subject,message,sender,[recipient]),...]的方式完成;不过需要注意的是,`send_mass_email` 默认仅处理纯文本形式的消息体。如果要包含HTML部分的话,还是建议单独实例化每一个 `EmailMultiAlternatives` 实例,并通过循环逐一送[^2]。 配置 SMTP 服务时可以选择一些常见的免费服务商比如网易旗下的163邮箱等作为第三方SMTP服务器来进行设置。具体操作上需先登录所选电子信箱账户页面激活POP3/IMAP协议选项以便于后续连接验证过程顺利进行[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值