Django 发送邮件

Posted 北门吹雪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 发送邮件相关的知识,希望对你有一定的参考价值。

用户邮箱注册、发送验证码流程图

    

那,如何解决?

  1.  setting配置邮箱参数

# 邮箱设置,需要在邮箱中开启smtp服务
# 提供服务的主机域名
EMAIL_HOST = \'smtp.163.com\'
# 邮箱服务端口
EMAIL = 25
# 开通smtp服务的账号
EMAIL_HOST_USER = \'自己的邮箱地址\'
# 相关密码
EMAIL_HOST_PASSWORD = \'邮箱密码\'
#
EMAIL_USE_TIS = False
# 发件人邮箱地址
EMAIL_FROM = \'自己的邮箱地址\'

 

   2.  导入django发送邮箱模块, 并调用模块

    # 其中还有一个过程就是需要导入保存邮箱验证码的表,先发送邮件,如果邮件发送成功则保存验证信息到数据库

__author__ = \'beimenchuixue\'
__blog__ = \'http://www.cnblogs.com/2bjiujiu/\'

# 发送邮件模块
from django.core.mail import send_mail
# 验证码信息表
from users.models import EmailVerifyRecord
# 发件人
from MxOline.settings import EMAIL_FROM

import random


def to_send_email(email, _type=\'register\'):
    """发送邮件"""
    email_rcode = EmailVerifyRecord()
    # 注册发送验证邮件
    if _type == \'register\':
        random_code = get_random_code()

        email_title = \'title\'
        email_body = \'点击连接完成激活: http://127.0.0.1:8000/active/{random_code}/{_type}\'.format(random_code=random_code,
                                                                                           _type=_type)
        # 保存验证码
        email_rcode.code = random_code
        email_rcode.send_type = _type
        email_rcode.email = email
        email_rcode.save()
        # 真正启动Django自带的发送邮件功能,邮件标题,邮件内容,发送人,发给谁,发送成功则返回1,失败则返回0
        email_status = send_mail(subject=email_title, message=email_body, from_email=EMAIL_FROM, recipient_list=[email])
        return email_status

    # 忘记密码发送验证邮件, 和 发送验证码逻辑一样
    if _type == \'forget\':
      pass


def get_random_code(length=8):
    """获得随机字符串"""
    code = \'\'
    choice_str = \'abcdefghijklmnopqrstuvwxyz0123456789\'
    for _ in range(length):
        random_str = random.choice(choice_str)
        code += random_str
    return code

 

核心知识:

  1.  django发送邮件模块 send_mail

  2. setting中配置邮件服务参数

  3. 判断发送邮件类型并保存邮件信息到数据库中去

  4. 随机字符的获取

  

以上是关于Django 发送邮件的主要内容,如果未能解决你的问题,请参考以下文章

我想在我的 Django 应用程序中发送每周电子邮件。从数据库中提取数据并实时发送电子邮件的代码应该在哪里?

python 项目实战之Django 邮件发送

在 django 中发送带附件的电子邮件

Django:如何发送带有嵌入图像的 HTML 电子邮件

Django - 如何在发送邮件时重定向

django 使用 django-registration 以 html 格式发送电子邮件