本文实例讲述了Python django实现简单的邮件系统发送邮件功能。分享给大家供大家参考,具体如下:

django邮件系统

Django发送邮件官方中文文档

总结如下:

1、首先这份文档看三两遍是不行的,很多东西再看一遍就通顺了。

2、send_mail()、send_mass_mail()都是对EmailMessage类使用方式的一个轻度封装,所以要关注底层的EmailMessage。

3、异常处理防止邮件头注入。

4、一定要弄懂Email backends 邮件发送后端

5、多线程的邮件发送。

个人简单配置如下:

首先是settings.py文件

#settings.py

#邮件配置

EMAIL_HOST = 'smtp.gmail.com' #SMTP地址

EMAIL_PORT = 25 #SMTP端口

EMAIL_HOST_USER = 'pythonsuper@gmail.com' #我自己的邮箱

EMAIL_HOST_PASSWORD = '******' #我的邮箱密码

EMAIL_SUBJECT_PREFIX = u'[CoorCar网]' #为邮件Subject-line前缀,默认是'[django]'

EMAIL_USE_TLS = True #与SMTP服务器通信时,是否启动TLS链接(安全链接)。默认是false

#管理员站点

SERVER_EMAIL = 'xinxinyu2011@163.com' #The email address that error messages come from, such as those sent to ADMINS and MANAGERS.

这里推荐:各大型邮箱smtp服务器及端口收集

各大型邮箱smtp服务器及端口收集:

新浪邮箱smtp服务器

外发服务器:smtp.vip.sina.com

收件服务器:pop3.vip.sina.com

新浪免费邮件

外发服务器:smtp.sina.com.cn

收件服务器:pop3.sina.com.cn

163邮箱smtp服务器

pop: pop.163.com

smtp: smtp.163.com

QQ邮箱smtp服务器及端口

接收邮件服务器:imap.exmail.qq.com,使用SSL,端口号993

发送邮件服务器:smtp.exmail.qq.com,使用SSL,端口号465或587

yahoo邮箱smtp服务器

接:pop.mail.yahoo.com.cn

发:smtp.mail.yahoo.com

126邮箱smtp服务器

pop: pop.126.com

smtp: smtp.126.com

新浪免费邮箱

POP3:pop.sina.com

SMTP:smtp.sina.com

SMTP端口号:25

新浪VIP邮箱

POP3:pop3.vip.sina.com

SMTP:smtp.vip.sina.com

SMTP端口号:25

新浪企业邮箱

POP3:pop.sina.com

SMTP:smtp.sina.com

SMTP端口号:25

雅虎邮箱

POP3:pop.mail.yahoo.cn

SMTP:smtp.mail.yahoo.cn

SMTP端口号:25

搜狐邮箱

POP3:pop3.sohu.com

SMTP:smtp.sohu.com

SMTP端口号:25

TOM邮箱

POP3:pop.tom.com

SMTP:smtp.tom.com

SMTP端口号:25

Gmail邮箱

POP3:pop.gmail.com

SMTP:smtp.gmail.com

SMTP端口号:587 或 25

QQ邮箱

POP3:pop.exmail.qq.com

SMTP:smtp.exmail.qq.com

SMTP端口号:25

263邮箱

域名:263.net

POP3:263.net

SMTP:smtp.263.net

SMTP端口号:25

域名:x263.net

POP3:pop.x263.net

SMTP:smtp.x263.net

SMTP端口号:25

域名:263.net.cn

POP3:263.net.cn

SMTP:263.net.cn

SMTP端口号:25

域名:炫我型

POP3:pop.263xmail.com

SMTP:smtp.263xmail.com

SMTP端口号:25

21CN 免费邮箱

POP3:pop.21cn.com

SMTP:smtp.21cn.com

IMAP:imap.21cn.com

SMTP端口号:25

21CN 经济邮邮箱

POP3:pop.21cn.com

SMTP:smtp.21cn.com

SMTP端口号:25

21CN 商务邮邮箱

POP3:pop.21cn.net

SMTP:smtp.21cn.net

SMTP端口号:25

21CN 快感邮箱

POP3:vip.21cn.com

SMTP:vip.21cn.com

SMTP端口号:25

21CN Y邮箱

POP3:pop.y.vip.21cn.com

SMTP:smtp.y.vip.21cn.com

SMTP端口号:25

中华网任我邮邮箱

POP3:rwpop.china.com

SMTP:rwsmtp.china.com

SMTP端口号:25

中华网时尚、商务邮箱

POP3:pop.china.com

SMTP:smtp.china.com

SMTP端口号:25

那么发送邮件如下:

def setEmail(request):

if request.method == "POST":

# 方式一:

# send_mail('subject', 'this is the message of email', 'pythonsuper@gmail.com', ['1565208411@qq.com','1373763906@qq.com'], fail_silently=True)

# 方式二:

# message1 = ('subject1','this is the message of email1','pythonsuper@gmail.com',['1565208411@qq.com','xinxinyu2011@163.com'])

# message2 = ('subject2','this is the message of email2','pythonsuper@gmail.com',['1373763906@qq.com','xinxinyu2011@163.com'])

# send_mass_mail((message1,message2), fail_silently=False)

# 方式三:防止邮件头注入

# try:

# send_mail(subject, message, from_email, recipient_list, fail_silently, auth_user, auth_password, connection)

# except BadHeaderError:

# return HttpResponse('Invaild header fount.')

# 方式四:EmailMessage()

#首先实例化一个EmailMessage()对象

# em = EmailMessage('subject','body','from@example.com',['1565208411@qq.com'],['xinxinyu2011@163.com'],header={'Reply-to':'another@example.com'})

#调用相应的方法

# 方式五:发送多用途邮件

subject,form_email,to = 'hello','from@example.com','1565208411@qq.com'

text_content = 'This is an important message'

html_content = u'激活链接:http:www.baidu.com'

msg = EmailMultiAlternatives(subject,text_content,form_email,[to])

msg.attach_alternative(html_content, 'text/html')

msg.send()

# 发送邮件成功了给管理员发送一个反馈

# mail_admins(u'用户注册反馈', u'当前XX用户注册了该网站', fail_silently=True)

return HttpResponse(u'发送邮件成功')

return render_to_response('common/test.html')

截图如下:

class Send_mail(object):

'''发送邮件'''

def __init__(self,sender,passward,receivers):

self.sender=sender

self.password=passward

self.receivers=receivers

def send(self,ShowText,Name,Header_show):

'''

:param ShowText: 发送内容

:param Name: 发送者

:param Header_show: 发送文件抬头

:return:

'''

message = MIMEText('%s'%(ShowText), 'plain', 'utf-8')

message['From'] = Header("%s"%(Name), 'utf-8')

message['To'] = Header("jiayuguang@qq.com")

message['Subject'] = Header("%s"%(Header_show),'utf-8')

smtpObj=smtplib.SMTP('smtp.163.com')

smtpObj.set_debuglevel(1)

smtpObj.login(self.sender,self.password)

smtpObj.sendmail(self.sender,self.receivers,message.as_string())

smtpObj.quit()

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

本文标题: Python django实现简单的邮件系统发送邮件功能

本文地址: http://www.cppcns.com/jiaoben/python/196583.html

python写邮箱系统_Python django实现简单的邮件系统发送邮件功能相关推荐

  1. Python django实现简单的邮件系统发送邮件功能

    Python django实现简单的邮件系统发送邮件功能 本文实例讲述了Python django实现简单的邮件系统发送邮件功能. django邮件系统 Django发送邮件官方中文文档 总结如下: ...

  2. python写邮箱系统_教大家用Python写一个简单电子邮件发信器

    嘛~炎热的暑假大家都在家干些啥呢?up主本人每天就是摸鱼哒!为了让这个懒懒的up每天从床上早点爬起来,我可是立了不少flag呢~那就先不多说了,直接开始正文吧. 声明一下,本文内容为原创,如果引用其他 ...

  3. python 随机数抽奖系统_python实现的简单抽奖系统实例

    本文实例讲述了python实现的简单抽奖系统.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/env python #coding=utf-8 from Tkinter import ...

  4. 用python写12306系统_Python实现12306火车票抢票系统

    Python实现12306火车票抢票系统 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  Python实现12306火车票抢票系统.txt ] (友情提示:右键点 ...

  5. python做邮箱系统_python实现用户登录系统

    本文实例为大家分享了用户登录系统python实现代码,供大家参考,具体内容如下 注意事项: 1.使用python3执行程序.按提示输入1或2,登录或退出程序 2.输入用户名后,如果用户名被锁定及无效用 ...

  6. python写排列组合_Python实现的简单排列组合算法示例

    本文实例讲述了Python实现的简单排列组合算法.分享给大家供大家参考,具体如下: 1.python语言简单.方便,其内部可以快速实现排列组合算法,下面做简单介绍 2.一个列表数据任意组合 主要是利用 ...

  7. python图书馆预约系统_python实现图书馆研习室自动预约功能

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  8. python写的系统常用命令(二)

    python写的系统常用命令,linux和windows通用,用的时候直接from util import *导入即可使用,很方便 #!/usr/bin/python # -*- coding: ut ...

  9. python写一个系统-使用Python写一个量化股票提醒系统

    大家在没有阅读本文之前先看下python的基本概念, Python是一种解释型.面向对象.动态数据类型的高级程序设计语言. Python由Guido van Rossum于1989年底发明,第一个公开 ...

最新文章

  1. QTreeWidgetItem和QTreeWidgetItemIterator
  2. sqlplus中利用spool生成带日期的文件名
  3. java jdbc 乱码_【求助】为什么用纯java jdbc插入mysql一直乱码
  4. html显示pcd,PCD5043 Datasheet(数据表) 10 Page - NXP Semiconductors
  5. SQL注入:2、读写文件和下载数据库
  6. 【操作系统】—中断和异常
  7. screw-plus实现php代码安全
  8. linux鼠标改为自动聚焦,如何在Linux上取消聚焦(模糊)Pythongi GTK+3窗口
  9. MySQL 获取物理表的主键字段
  10. 又是一个秋天~~~~
  11. eclipse 远程链接访问hadoop 集群日志信息没有输出的问题l
  12. sql增删改查_5分钟GET全栈开发 - 增删改查的取经之路
  13. Win10应用设计的那些事儿
  14. YY 0709|视觉报警信号的要求和测试方法
  15. JavaScript节点操作、删除节点
  16. Nginx之一:Nginx的编译安装
  17. python统计汉字个数是_Python入门(一):一句话统计文章不重复汉字数
  18. 中国杀软套路深:CIA怼遍全世界竟然干不过它
  19. python协同过滤电影推荐的论文_协同过滤?教你用Python实现协同过滤
  20. 删除了大文件,但是磁盘并没有释放

热门文章

  1. uwe5622 uwe5621ds 紫光展锐 wifi 移植的几个关键点:
  2. 手把手教你搭建使用NuGet私有源
  3. Unity插件——文字转朗读语音RtVioce插件功能/用法/下载
  4. LinkedIn高级分析师王益:大数据时代的理想主义和现实主义
  5. 嵌入式linux ota,嵌入式Linux的OTA更新,基础知识和实现
  6. CMake入门1——CMake与VS编译器和nmake的结合使用
  7. GBase 8c产品高级特性介绍
  8. 简单的科普(引导模式、分区格式)
  9. c语言 文件加密与解密
  10. PS常用案例步骤详解,自学 Photoshop 2022 Mac版——笔记 3实战PS做练习题