Django学习笔记(十六):邮件发送

邮件发送

在settings配置文件,添加如下内容

EMAIL_USE_SSL = True

EMAIL_HOST = 'smtp.qq.com'  # 如果是 163 改成 smtp.163.com

EMAIL_PORT = 465

EMAIL_HOST_USER = environ.get("EMAIL_SENDER") # 帐号

EMAIL_HOST_PASSWORD = environ.get("EMAIL_PWD")  # 授权码(****)

DEFAULT_FROM_EMAIL = EMAIL_HOST_USER

在views调用

from django.conf import settings
from django.core.mail import send_mail

def send_my_email(req):
    title = "邮件标题"
    msg = "邮件内容"
    
    #发信人邮箱
    email_from = settings.DEFAULT_FROM_EMAIL
    
    #收信人邮箱
    reciever = ['[email protected]']

    #发送邮件
    send_mail(title,msg,email_form,reciever)
    return HttpResponse("邮件发送成功")

拓展使用,在邮箱中发送页面(插入html样式)

在views.py代码

def send_email(req):
    title = '邮件标题'
    msg = ""
    email_from = settings.DEFAULT_FROM_EMAIL
    reciever = [
        '[email protected]'
    ]
    
    #加载模板
    template = loader.get_template('email.html')
    #渲染模板
    html_str = template.render({'msg':'页面中显示的内容'})
    
    #发送邮件
    send_mail(title,msg,email_form,reciever,html_message=html_str)
    return HttpResponse('发送成功')

在templates/email.html代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>发送的页面</h1>
    <h3>{{msg}}<3>
</body>
</html>

一次发送多封邮件

使用send_mass_mail函数,views代码

from django.conf import settings
from django.core.mail import send_mass_mail

def send_many_email(req):
    title = "邮箱标题"
    content1 = "内容1"
    email_from = settings.DEFAULT_FROM_EMAIL
    reciever1 = [
        '[email protected]',
        '[email protected]'    
    ]
    content2 = "内容2"
    
    #邮件1
    msg1 = (title,content1,email_form,reciever1)
    
    #邮件2
    msg2 = ("标题",content2,email_from,['[email protected]','[email protected]'])

    send_mass_mail((msg1,msg2),fail_silently=True)
    return HttpResponse("发送成功")

猜你喜欢

转载自blog.csdn.net/xiaohuoche175/article/details/81299303
今日推荐