(预先安装redis、celery、eventlet库)
Django 框架在在 django.core.mail 模块中内置了邮件发送功能,通常情况下发送邮件是需要使用 SMTP 服务
器的,且常用的免费邮箱服务器有 163、126、QQ 等,下面以发送 QQ 邮件为例进行说明。
进入QQ邮箱,点击 设置–》账户 --》开启POP3/SMTP服务 --》手机发送短信验证开启
点击黄色框里的 生成授权码
保存生成的授权码备用。
打开项目里的settings.py文件,添加如下配置内容:
# 发送 QQ 邮件配置项 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'smtp.qq.com' EMAIL_PORT = 25 # EMAIL_HOST_USER = 'xxx@qq.com' # 你的 QQ 账号 EMAIL_HOST_USER = '11111111111@qq.com' # 发送者的 QQ 账号 EMAIL_HOST_PASSWORD = 'ZYXWVUTSRQPONM' # 1、中生成的授权码(不是QQ 密码哦!) EMAIL_USE_TLS = True # 这里必须是 True,否则发送不成功 # EMAIL_FROM = 'xxx@qq.com' # EMAIL_FROM = '他随便起了一个名字<11111111111@qq.com>' # 收件人端 显示的发件人信息3、配置视图文件
在应用文件夹中的views.py文件中配置视图函数:
from django.core.mail import send_mail
from codeothertest import settings
from django.http import HttpResponse
def send(request):
"""发送消息内容到邮箱"""
send_mail(subject="极致果蔬用户激活邮件",
message="", # 发送的内容
from_email=settings.EMAIL_FROM,
# 可以给一个或多个人发送,添加多个邮箱['1231231@qq.com','1231231@qq.com','1231231@qq.com']
recipient_list=['1231231@qq.com',],
# 单纯一句话太单调了,可以发送HTML格式的信息,这将自动替换掉 message 的信息(所以干脆上面是空的)
html_message='CSDN,欢迎您,不要点击,会变得幸运~')
return HttpResponse("OK")
4、配置路由
将视图函数写入urls.py路由中(分路由、主路由都可):
from xxx.views import send urlpatterns = [ ...... url(r"^send$",views.send), # 配置发送邮件的 url ]5、访问http://127.0.0.1:8000/send
Terminal1启动Django服务:
X:/xxxx/myblog> python manage.py runserver
Terminal2启动celery(如在myblog项目下):
X:/xxxx/myblog> celery -A myblog.tasks worker -l info -P eventlet
访问http://127.0.0.1:8000/send
recipient_list列表中的所有QQ号都能接收到邮件



