django-29.发送html格式邮件

上一篇已经通过send_mail()函数发送纯文本的邮件,发送成功了,如果我们想发送一个html格式的邮件,如何实现呢?
发送html格式的邮件实际上还是调用send_mail()函数 ,只需多加一个html_message参数

html_message参数

从上一篇的send_mail()函数里面可以看出,里面有个参数html_message默认是为None,部分源码如下

mail = EmailMultiAlternatives(subject, message, from_email, recipient_list, connection=connection)
    if html_message:
        mail.attach_alternative(html_message, ‘text/html‘)

当html_message参数不为空的时候,会调用EmailMultiAlternatives类里面的方法,发送html格式的文件

如我们需要发送的html内容如下

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="UTF-8">
    <title>带图片的邮件</title>
</head>
<body>
<a href="https://yuedu.baidu.com/ebook/902224ab27fff705cc1755270722192e4536582b" target="_blank">
    <p>pytest教程,点图片进入:<br>
    <img src="https://img2018.cnblogs.com/blog/1070438/201902/1070438-20190228112918941-704279799.png" height="160" width="270" />
    </p></a>
<p>
其它图片:<br>
<img src="http://www.w3school.com.cn/i/eg_chinarose.jpg" height=150 width=300/></p>
<p>请注意,插入动画图像的语法与插入普通图像的语法没有区别。</p>
</body>
</html>

在浏览器效果

views和urls.py

在views.py里面写个视图函数,调用发送邮件的功能

def mail_html(request):
    ‘‘‘发送html格式邮件‘‘‘
    h = ‘‘‘
    <!DOCTYPE HTML>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>带图片的邮件</title>
    </head>
    <body>
    <a href="https://yuedu.baidu.com/ebook/902224ab27fff705cc1755270722192e4536582b" target="_blank">
        <p>pytest教程,点图片进入:<br>
        <img src="https://img2018.cnblogs.com/blog/1070438/201902/1070438-20190228112918941-704279799.png" height="160" width="270" />
        </p></a>
    <p>
    其它图片:<br>
    <img src="http://www.w3school.com.cn/i/eg_chinarose.jpg" height=150 width=300/></p>
    <p>请注意,插入动画图像的语法与插入普通图像的语法没有区别。</p>
    </body>
    </html>
    ‘‘‘
    send_mail(‘Subject here‘,             # 主题
              ‘hell‘,     # 正文
              ‘283340479@qq.com‘,         # 发件人
              [‘zhangwenquan@91xcm.com‘],       # 收件人
              fail_silently=False,
              html_message=h)                # html邮件
    return HttpResponse(‘邮件发送成功,收不到就去垃圾箱找找吧!‘)

urls.py写个访问地址触发发邮件

from django.conf.urls import url
from hello import views

urlpatterns = [
    # 新增用户
    url(r‘^register/‘, views.register),
    url(r‘^login/‘, views.login),
    url(r‘^reset/‘, views.reset_psw),
   url(r‘^mail/‘, views.mail),
   url(r‘^mail_html/‘, views.mail_html),
]

访问http://localhost:8000/mail_html/后收到的邮件内容效果展示如下

原文地址:https://www.cnblogs.com/jason89/p/10482949.html

时间: 2024-10-06 20:20:01

django-29.发送html格式邮件的相关文章

SQL Server中发送HTML格式邮件的方法

SqlSever 配置邮箱的方法就不说了,自行百度搜索.发送邮件可以非常方便帮助运维人员做统计或者发送给客户定制的订单等. 以下列举使用sqlserver 发送邮件的3个示例: A. 发送电子邮件 此示例使用电子邮件地址 [email protected] 向 Dan Wilson 发送电子邮件.该邮件的主题为 Automated Success Message.邮件正文包含一句话 'The stored procedure finished successfully'. EXEC msdb.d

python练习--发送html格式邮件且发送附件;

最近需要些一个根据配置自动获取html正文及附件的工具脚本.随业余时间写了这个脚本,同时也是对邮件结构的一个学习:后续还需要继续完善html内容生成的部分 感觉脚本还可以优化,比如可以加入图片部分,pdf等,另外发送邮件用的默认铭文方式.没有采用加密/SSL等其他方式: 另外xml配置部分的提取还可以使用字典来做.这样可以更优一些: 代码: xml配置文件: <?xml version="1.0" encoding="UTF-8"?> <Email

python 发送html格式邮件到qq

# -*- coding: utf-8 -*- __author__ = 'Alon' __date__ = '2017/8/14 18:38' import sys reload(sys) sys.setdefaultencoding('utf8') import smtplib import time from datetime import datetime from email.mime.text import MIMEText from email.mime.multipart imp

在Linux命令行下发送html格式的邮件

在Linux利用formail+sendmail来发送带图片的邮件 formail接收html格式的文件作为邮件的内容,这样就可以解决发送带图片邮件的问题了,因为html中可以插入图片,只要给出的img src为可用的链接就行了. 命令格式如下cat mailfile.html | formail -I "MIME-Version:1.0" -I "Content-type:text/html;charset=gb2312" -I "Subject:lay

[Java] JavaMail 发送 html 格式、带附件的邮件

本案例演示发送 html 格式,可带附件的邮件发送.发送纯文本邮件的例子可参照上一篇博文JavaMail 简单案例. EmailHelper, Email 的帮助类,向帮助类提供 SMTP 服务器域名.用户名.密码.发送人邮箱.收件人邮箱.邮件主题.html 格式的内容(可选).附件(可选),便可发送一份邮件. SendEmailDemo, 演示发送邮件. import java.util.Properties; import javax.activation.DataHandler; impo

使用qq邮箱发送html格式的邮件

import smtplib   from email.mime.text import MIMEText   mailto_list=["[email protected]","[email protected]"]  mail_host="smtp.qq.com"  #设置服务器 mail_user="[email protected]"   #用户名 mail_pass="xxx"   #密码    

django中发送html邮件

settings.py文件中添加配置: EMAIL_HOST='smtp.163.com' EMAIL_HOST_USER='[email protected]' EMAIL_HOST_PASSWORD='password' EMAIL_USE_TLS = True 方法1: # -*- coding: utf-8 -*- from django.conf import settings settings.configure() from django.core.mail import send

C#发送内置图片的html格式邮件的代码

将写内容过程经常用的内容段备份一次,下面的内容是关于C#发送内置图片的html格式邮件的内容,应该对码农们也有用处.MailMessage m = new MailMessage();m.Subject = "html email with embedded image coming!"; string htmlBody = "<html><body><h1>Picture</h1><br><img src=&

基于JavaMail的Java邮件发送:简单邮件发送

http://blog.csdn.net/xietansheng/article/details/51673073 http://www.cnblogs.com/codeplus/archive/2011/10/30/2229391.html http://blog.csdn.net/ghsau/article/details/17839983 ******************** 电子邮件的应用非常广泛,例如在某网站注册了一个账户,自动发送一封欢迎邮件,通过邮件找回密码,自动批量发送活动信