django发送html邮件

1、配置邮箱

需要开通对应的服务,以qq邮箱为例,点击设置--》账户   中,找到对应服务

在这里插入图片描述
2、配置settings

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.qq.com'  # 腾讯QQ邮箱 SMTP 服务器地址
EMAIL_PORT = 25  # SMTP服务的端口号
EMAIL_HOST_USER = 'xxx@qq.com'  # 发送邮件的QQ邮箱
EMAIL_HOST_PASSWORD = 'xxxx'  # 在QQ邮箱->设置->帐户->“POP3/IMAP......服务” 里得到的在第三方登录QQ邮箱授权码

3、添加html模板

首先setting中配置html模板位置
TEMPLATES = [
{
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS':  [os.path.join(BASE_DIR, 'templates')],
    'APP_DIRS': True,
    'OPTIONS': {
        'context_processors': [
            'django.template.context_processors.debug',
            'django.template.context_processors.request',
            'django.contrib.auth.context_processors.auth',
            'django.contrib.messages.context_processors.messages',
        ],
    },
},
]

4、发送邮件

subject = '测试邮件主题'
context = {}
from_email = 'xxx@qq.com'  # 邮件发送人
recipient_list = ['xxx@qq.com', 'xxx@163.com']  # 邮件接收人

# 这里需要提前写好html的页面
email_template_name = 'template.html'  
t = loader.get_template(email_template_name)  # 导入模板

html_content = t.render(context)  # 模板参数
msg = EmailMultiAlternatives(subject, html_content, from_email, recipient_list)
msg.attach_alternative(html_content, "text/html")  
msg.send()  # 发送邮件
### Django发送 HTML 邮件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、付费专栏及课程。

余额充值