Django 发送html格式的邮件

Django 发送html格式的邮件

django中默认提供了发送邮件的库mail,通过这个库我们可以很方便的通过django发送一份电子邮件

  1. 在setting 中指定邮件服务器的基本信息
Python
EMAIL_USE_SSL = True EMAIL_HOST = 'smtp.exmail.qq.com' # 如果是 163 改成 smtp.163.com EMAIL_PORT = 465 EMAIL_HOST_USER = '***@domain.com' # 帐号 EMAIL_HOST_PASSWORD = 'password' # 密码 DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
1
2
3
4
5
6
7
EMAIL_USE_SSL = True     
EMAIL_HOST = 'smtp.exmail.qq.com'    # 如果是 163 改成 smtp.163.com
EMAIL_PORT = 465
EMAIL_HOST_USER = '***@domain.com' # 帐号
EMAIL_HOST_PASSWORD = 'password'    # 密码
DEFAULT_FROM_EMAIL = EMAIL_HOST _USER
 
  1. 引用mail库发送邮件
Python
from django.core.mail import EmailMessage from Across.settings import EMAIL_HOST_USER msg = EmailMessage("邮件标题","邮件内容",EMAIL_HOST_USER,[接受邮件列表]) msg.send()
1
2
3
4
5
6
from django . core . mail import EmailMessage
from Across . settings import EMAIL_HOST_USER
 
msg = EmailMessage ( "邮件标题" , "邮件内容" , EMAIL_HOST_USER , [接受邮件列表 ] )
msg . send ( )
 

3.发送html模板邮件
可以利用Django的template库读取指定的html模板,然后将参数代入,首选需要在settings中设置template的目录

Python
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', ], }, }, ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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' ,
             ] ,
         } ,
     } ,
]
 

然后将你准备好的html模板放入该目录,然后就是利用temlate的loader函数加载模板传入指定参数

Python
html_content = loader.render_to_string('email.html',{'authcode':random,'title':"标题标题",'operation':operation_str}) msg = EmailMessage("您的验证码",html_content,EMAIL_HOST_USER,[email]) msg.content_subtype = "html" # Main content is now text/html msg.send()
1
2
3
4
5
html_content = loader . render_to_string ( 'email.html' , { 'authcode' : random , 'title' : "标题标题" , 'operation' : operation_str } )
msg = EmailMessage ( "您的验证码" , html_content , EMAIL_HOST_USER , [ email ] )
msg . content_subtype = "html" # Main content is now text/html
msg . send ( )
 



  • zeropython 微信公众号 5868037 QQ号 5868037@qq.com QQ邮箱
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值