毕业设计——Django邮件发送功能实现及问题记录
django发送邮件:send_mail()&send_mass_mail()
步骤 :
0. 登录作为发送方的邮箱,开启smtp服务,一般需要设置授权码用于第三方登录
1. settings.py中配置如下:
# 邮件发送设置
# 设置EMAIL_BACKEND确保使用的是smtp
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
# 安全机制设置为SSL加密机制, 注意:SSL与TLS互斥, 不能同时设置为True
EMAIL_USE_TLS = False # 不使用TLS安全传输协议, 默认为False, 写出来是为了清楚
EMAIL_USE_SSL = True # 使用SSL加密
EMAIL_HOST = 'smtp.163.com' # 发送邮件使用的smtp服务器
EMAIL_PORT = 465 # 发件箱的smtp服务器端口号,使用了SSL加密后的端口号应为465或587,非加密则是25
EMAIL_HOST_USER = 'eget_administrator@163.com' # 发送邮件的邮箱地址
# 邮箱第三方登录用的授权码, 在对应的邮箱中进行设置开启
EMAIL_HOST_PASSWORD = 'hjh2015190304' # EMAIL_HOST_USER的第三方登录授权码, 并非邮箱登录密码, 需要在邮箱中进行设置
EMAIL_FROM = 'eget_administrator@163.com' # 发件人邮箱
2. 发送邮件代码:一般使用封装了EmailMessage类的两个函数进行邮件发送,django.core.mail中的send_mail()和send_mass_mail(),关于二者的区别此处不赘述,可另查阅资料。
问题记录 (先简单记录发现过程及解决方案,有时间再重新整理)
1.如图所示:

如上错误信息,stackoverflow给出的回答:django2.1 send email fail:ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:833)。同时附上一篇关于“发邮件的服务器端口号”来简单介绍smtp服务器的端口号及使用出错原因,还有一篇常用邮箱服务器地址(smtp、pop3)及端口号介绍,还有一篇电子邮件服务器扫盲——百度百科。
2. 关于django发送邮件的内容形式:纯文字、html。先奉上查到的解决方案:django发送html邮件、django发送html邮件总结(详细)、django发送邮件官网文档翻译(已采用)
反面教材:如下代码中嵌入了html却没能按照预期的设想得到想要的结果,而是如图(滑稽.png)

subject = ''
message = ''
if verify_type == 0:
subject = '欢迎注册易得比价网:'
message = '请点击以下链接以激活您的账号:\n <a href="http://127.0.0.1:8000/users/activate/' + code + \
'" target="_blank">激活账号</a>'
elif verify_type == 1:
subject = '修改密码:'
message = '请点击以下链接以修改密码:\n <a href="http://127.0.0.1:8000/users/chpwd/' + code + \
'" target="_blank">修改密码</a>'
elif verify_type == 2:
subject = '换绑邮箱:'
message = '请点击以下链接以换绑邮箱:\n <a href="http://127.0.0.1:8000/users/chemail/' + code + \
'" target="_blank">换绑邮箱</a>'
# 前四个参数是必填项
send_mail(subject=subject, message=message, from_email=EMAIL_FROM, recipient_list=[email], fail_silently=False)
3. 链接生效时间设置:规定时间内访问链接有效,超过规定时间则失效
4. 在注册账号后,发现需要等待执行完发送邮件的代码才能进行下一步,用户体验糟糕,因此需要实现异步发送邮件,正在找资料……
毕业设计——Django邮件发送功能实现及问题记录的更多相关文章
- .NET开发邮件发送功能的全面教程(含邮件组件源码)
今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1) 邮件基础理论知识 2) ...
- 用ASP.NET Core 1.0中实现邮件发送功能-阿里云邮件推送篇
在上篇中用MailKit实现了Asp.net core 邮件发送功能,但一直未解决阿里云邮件推送问题,提交工单一开始的回复不尽如人意,比如您的网络问题,您的用户名密码不正确等,但继续沟通下阿里云客户还 ...
- redmine邮件发送功能配置详解
redmine的邮件发送功能还是很有用的.像项目有更新啦,任务分配啦,都能邮件发送的相关责任人.我自己在linux服务器上安装并启动了redmine后,邮件一直发送了不了.查了网上的资料,都是讲修改下 ...
- .NET开发邮件发送功能
.NET开发邮件发送功能 今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1) 邮件基础理论知 ...
- shell邮件发送功能实现
本文中以163邮箱为例,测试shell邮件发送功能.常见的工具有:mailx.sendmail.mutt等. 1.设置邮件客户端 (1)启用pop3.smtp服务,以支持第三方客户端支持 (2)设置授 ...
- SpringBoot 2.X从0到1实现邮件发送功能
Spring中提供了JavaMailSender接口实现邮件发送功能,在SpringBoot2.X中也封装了发送邮件相关的Starter并且提供了自动化配置. 本文目录 一.添加对应的Starter二 ...
- spring-boot-route(二十二)实现邮件发送功能
在项目开发中,除了需要短信验证外,有时候为了节省 短信费也会使用邮件发送.在Spring项目中发送邮件需要封装复杂的消息体,不太方便.而在Spring Boot项目中发送邮件就太简单了,下面一起来看看 ...
- System.Net邮件发送功能踩过的坑
System.Net邮件发送功能踩过的坑 目录 System.Net邮件发送功能踩过的坑 1.EazyEmail邮件发送类库 2.邮件发送授权码与邮件密码 3.通过邮件密码来发送邮件 4.Wiresh ...
- 结合ABP源码实现邮件发送功能
1. 前言 2. 实现过程 1. 代码图(重) 2.具体实现 2.1 定义AppSettingNames及AppSettingProvider 2.2 EmailSenderConfiguration ...
随机推荐
- win10怎么进入和退出安全模式?
在Win10系统里同时按下”Win+R“组合按键,在打开的运行对话框里输入命令:msconfig,然后点击确定,如下图所示. 点击打开系统配置窗口,选择引导选项卡,如下图所示. 在引导选项卡窗口下,将 ...
- visual studio中各文件的输出路径
dll或exe输出路径一般在 配置属性->链接器->常规->输出文件 中 若该路径与 配置属性->常规 中的输出目录+目标文件名+目标文件扩展名不一致,可能会有提示,建议保持一 ...
- MVVM数据代理
MVVM数据代理 function MVVM(options) { this.$options = options || {}; var data = this._data = this.$optio ...
- java基础问题巩固(1)
你对java垃圾回收了解吗?什么时候需要使用? 答: 垃圾回收器的作用是查找和回收(清理)无用的对象,从而让jvm更 有效的使用内存.但是运行因为垃圾回收本身会有开销,过于频繁的使用会导致性能下降.比 ...
- Linux学习之路4——文件IO打开、创建、读写操作
1.使用man 2 open.man 2 creat.man 2 write.man 2 read命令获取头文件 语法: int open(const char *pathname, int flag ...
- jQuery 源码学习 - 01 - 简洁的 $('...')
首先贴上学习参考资料:[深入浅出jQuery]源码浅析--整体架构,备用地址:chokcoco/jQuery-. jQuery 库,js 开发的一个里程碑,它的出现,让网页开发者们告别荒蛮的上古时代, ...
- 注解 springbootapplication 自动扫描所在包及其子包。会将有注解的加入到spring容器中
注解 springbootapplication 自动扫描所在包及其子包.会将有注解的加入到spring容器中
- CF 1119C Ramesses and Corner Inversion
https://codeforces.com/problemset/problem/1119/C 题目 给两个矩阵,只能选宽和高大于等于2的子矩阵左上.左下.右上.右下四点翻转(1->0,0-& ...
- 百度编辑器前后端二开图片上传Js Thinkphp tp5 ueditor
百度编辑器图片上传Jsueditor.all.min.js 下载链接 链接:https://pan.baidu.com/s/1VNgw9ELgRRHKeCQheFkQTw 提取码:fnfi 使用方法: ...
- TJOI2018Party
题目描述 小豆参加了\(NOI\)的游园会,会场上每完成一个项目就会获得一个奖章,奖章 只会是\(N\), \(O\), \(I\)的字样.在会场上他收集到了\(K\)个奖章组成的串. 兑奖规则是奖章 ...