栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Django--通过STMP服务发送邮件

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Django--通过STMP服务发送邮件

(预先安装redis、celery、eventlet库)
Django 框架在在 django.core.mail 模块中内置了邮件发送功能,通常情况下发送邮件是需要使用 SMTP 服务
器的,且常用的免费邮箱服务器有 163、126、QQ 等,下面以发送 QQ 邮件为例进行说明。

1、开启QQ邮箱的STMP服务

进入QQ邮箱,点击 设置–》账户 --》开启POP3/SMTP服务 --》手机发送短信验证开启

点击黄色框里的 生成授权码
保存生成的授权码备用。

2、配置settings.py文件

打开项目里的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号都能接收到邮件

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/681461.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号