大师网-带你快速走向大师之路 解决你在学习过程中的疑惑,带你快速进入大师之门。节省时间,提升效率

在django中发送邮件

在Django中发送邮件很简单,只需要使用django.core.mail中的send_mail函数即可实现。
具体来说,需要一些简单配置:
1.在邮箱内开通smtp等服务,如下图所示。126邮箱开通的过程中要设置客户端授权码(授权码后面会用到)。

2.settings.py中的设置
在django中的settings.py中添加如下代码:

EMAIL_HOST = 'smtp.126.com'  # 发送邮件的服务器地址
EMAIL_HOST_USER = '替换成自己的邮箱用户名'  # 不含‘@126.com’的后缀
EMAIL_HOST_PASSWORD = '替换成自己的邮箱授权码'  # 非邮箱登录密码
EMAIL_PORT = 25
DEFAULT_FROM_EMAIL = 'XXXX@126.com'  # 设置默认的发件人,不设置的话,本例中不会出现问题,但是在实际django中实际运用时,会出现问题,参见 http://blog.chinaunix.net/uid-21142030-id-5768057.html

3.代码文件
settings.py的同级目录中,新建一个Python代码文件(后缀名为.py),输入如下代码:

import os

from django.core.mail import send_mail

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "blog_shizhan.settings")  # 设置django的环境变量,不设置的话,不能读取到步骤2中的EMAIL_HOST等参数。

send_mail(
    '邮件主题',
    '邮件内容',
    'xxxx@126.com',  # 发件人
    ['xxxx@qq.com'],  # 收件人,必须是列表类型
    fail_silently=False,
)
print('Done!')

运行该代码文件,即可发送邮件了。