美文网首页django
Django 中发送邮件通知

Django 中发送邮件通知

作者: 拉纸没带屎 | 来源:发表于2015-09-18 15:38 被阅读1810次

前言

最近在做公司运维平台中一个有关服务器权限申请的 app,其中在申请进度状态被改变时需要邮件形式提醒有关人员及时对记录进行近一步操作,以推进审核流程。

Django 中发送邮件

Django 中为我们提供了发送邮件的接口,在 django.core.mail 模块中,是对 Python smtplib 做了一层轻度的封装,使其更易使用在 Django 项目中。

send_mail

Django 中最简单的发送邮件的方法是使用 django.core.mail.send_mail

以下是4个必要参数:
subject:字符串,邮件主题
message:字符串,邮件内容
from_email:字符串,发件邮箱
recipient_list:字符串列表,收件人列表

可选参数(未包含全部)

fail_silently:一个布尔值(True 或 False),如果是 False,当 send_mail 失败会引发 smtplib.SMTPException 系列异常,所有可能出现的异常都属于 smtplib.SMTPException 的子类。

auth_user:用于 smtp 服务器验证,如果不给定此参数,则使用项目 setting.py 中设定的 EMAIL_HOST_USER 的值。

auth_password:用于 smtp 服务器验证,如果不给定此参数,则使用项目 setting.py 中设定的 EMAIL_HOST_PASSWORD 的值。

总结

有了上面的知识就可以使用 Django 来发送简单的邮件给用户了,当然还有很多高阶的功能,需要额外的参数,或者是其他方法去实现,会在日后需要的时候去深入的,最后放一段我项目中的 setting.py 设置,和在 view 中简单使用 send_mail 方法发送邮件的代码片段。

File:project/setting.py
# 邮件部分设置

EMAIL_HOST = 'smtp.163.com' # smtp 地址(这里需要注意,如果你和我一样使用 163 邮箱的话,默认 smtp 功能是关闭的,需要去设置开启,并生成一个一次性密码用于连接 smtp 服务)
EMAIL_HOST_USER = 'xxxxxxxxxx@163.com' # 用户
EMAIL_HOST_PASSWORD = 'xxxxxxxxxx' # 密码
EMAIL_SUBJECT_PREFIX = u'[美图权限申请系统]' # 为邮件Subject-line前缀,默认是'[django]'
EMAIL_USE_TLS = True # 与SMTP服务器通信时,是否启动TLS链接(安全链接)。默认是false
File:app/views.py
from django.core.mail import send_mail
from smtplib import SMTPException
......
......
try:
    send_mail(
        subject=u"xxxxxxxxxx", message=u"通知:xxxxxxxxxx",
        from_email='xxxxxxxxxx@163.COM', recipient_list=[mail_adder, ], fail_silently=False,
    )
except SMTPException, e:
    # 此处记录日志
    # 返回相关错误信息,例如:return HttpResponse(error)

相关文章

  • 2018-07-17

    发送邮件 django中内置了邮件发送功能,被定义在django.core.mail模块中,发送邮件需要使用SMT...

  • smtp服务器开启

    发送邮件 Django中内置了邮件发送功能,被定义在django.core.mail模块中。发送邮件需要使用SMT...

  • email

    1. django 发送邮件 settings.py中配置发送邮件邮箱 使用send_mail方法发送邮件

  • Django 中发送邮件通知

    前言 最近在做公司运维平台中一个有关服务器权限申请的 app,其中在申请进度状态被改变时需要邮件形式提醒有关人员及...

  • Django——发送邮件和缓存

    发送邮件 概述:Django 中内置了邮件发送功能,发送邮件需要使用 SMTP服务,常用的免费服务器有:163、1...

  • Python之发送邮件

    Python之发送邮件 使用SMTP模块发送邮件 发送HTML文件 发送带附件的文件 Django发送文件 各大邮...

  • django邮件发送

    配置setting 编写发送邮件函数

  • django发送邮件

    在使用django的send_mail发送邮件过程中发现QQ用不了,不管是用25端口,还是465/587都不行,后...

  • django发送邮件

    邮件配置 邮件发送

  • Django 源码解读-signal实现(一)

    signal在django中用于发送通知,在django中内置的信号包括 post_save, pre_delet...

网友评论

    本文标题:Django 中发送邮件通知

    本文链接:https://www.haomeiwen.com/subject/epvbcttx.html