django发送邮件通知

1、参考url:

https://www.cnblogs.com/zyj-python/p/7522471.html

注意:

如设置EMAIL_USE_SSL = True #是否使用SSL加密,qq企业邮箱要求使用,

端口需要修改为: 465

具体端口修改参考:https://blog.csdn.net/areigninhell/article/details/79917388

2、views代码样例:

多线程方式实现:

2.1,调用

sqlOrderSendEmal2Create(sqlOrder.id, self.request.get_host).start()

2.2、方法代码

import threading
from django.template import loader
from django.core import mail
from django.conf import settings
class sqlOrderSendEmal2Create(threading.Thread):
    '''
    创建订单邮件
    '''
    def __init__(self,id,host):
        super().__init__()
        self.sqlOrderId = id
        self.host = host
    def run(self):
        self.sendMail()
    def sendMail(self):
        sqlOrder = SqlOrder.objects.get(id=self.sqlOrderId)
        render_args = {'obj': sqlOrder, 'server_host': self.host,
                       'assigned_user': sqlOrder.assigned,}
        to_applyer_content = loader.render_to_string(
            'sqlapply/sqlOrder_create_notice_to_assigned.html', render_args)
        connection = mail.get_connection()
        connection.open()
        messages = []
        # 通知审核人
        if Users.objects.get(username=sqlOrder.assigned).email:
            assigned_mails = [Users.objects.get(username=sqlOrder.assigned).email, ]
            to_assigned_subject = 'SQL执行申请 - 申请通知 - {0} - 单号:{1}'.format(sqlOrder.text, sqlOrder.work_id)
            to_assigned_msg = mail.EmailMessage(to_assigned_subject, to_applyer_content, settings.EMAIL_HOST_USER,
                                                assigned_mails)
            to_assigned_msg.content_subtype = 'html'
            messages.append(to_assigned_msg)
        connection.send_messages(messages)
        connection.close()

2.3、邮件内容模板

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>运维平台 - SQL执行审核通知  单号{{ obj.work_id }}</title>
</head>
<body>
<div style="border: 1px solid #d8d8d8; border-radius:5px; padding: 20px">
    <div style="border-bottom: 1px solid #d8d8d8; padding: 0 10px 5px 10px"><b>运维平台</b> - SQL执行审核通知  单号{{ obj.work_id }}  </div>
    <br />
    <div style="padding: 0px 10px 5px 10px">
        <p>{{ obj.username }},您好:</p>
        <p style="padding: 0px 0px 0px 20px">
            您发起的单号为:<a href="http://{{ server_host }}{% url 'sqlapply:mySqlOrder' %}"><b>{{ obj.work_id }}</b></a>
            的
            SQL执行申请,已有新进展,请登入运维平台查看。
            <a href="http://{{ server_host }}{% url 'sqlapply:mySqlOrder' %}">查看此申请</a>
        </p>
      <br />
        <div style="padding: 0px 0px 0px 20px">
            <table style="width: 100%">
                <tr>
                    <td style="min-width: 80px">状态:</td>
                    <td>{{ obj.get_status_display }}</td>
                </tr>
                <tr>
                    <td>链接:</td>
                    <td>
                        <a href="http://{{ server_host }}{% url 'sqlapply:mySqlOrder' %}">http://{{ server_host }}{% url 'sqlapply:mySqlOrder' %}</a>
                </tr>
                {% if obj.assigned %}
                    <tr>
                        <td>审批人:</td>
                        <td>{{ obj.assigned }}</td>
                    </tr>
                {% endif %}
                {% ifequal obj.status 0 %}
                    <tr>
                        <td>驳回说明:</td>
                        <td>{{ obj.rejected }}</td>
                    </tr>
                {% endifequal %}
                {% if obj.text %}
                    <tr>
                        <td>工单说明:</td>
                        <td>{{ obj.text }}</td>
                    </tr>
                {% endif %}

            </table>
        </div>
    </div>
</div>
</body>
</html>

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值