python 之发送邮件服务[原著] 海瑞博客
Python 发送邮件
使用默认的django的发送邮件,只适用于单邮箱。
作者:海瑞博客 http://www.hairuinet.com/
setting中配置
# send e-mail
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' #email后端
EMAIL_USE_TLS = False #是否使用TLS安全传输协议
EMAIL_USE_SSL = True #是否使用SSL加密,qq企业邮箱要求使用
EMAIL_HOST = 'smtp.exmail.qq.com' #发送邮件的邮箱 的 SMTP服务器,这里用了qq企业邮箱
EMAIL_PORT = 465 #发件箱的SMTP服务器端口
EMAIL_HOST_USER = 'hairui@hairuinet.com' #发送邮件的邮箱地址
EMAIL_HOST_PASSWORD = 'hairui2017HAIRUI' #发送邮件的邮箱密码
在视图中使用
from django.core.mail import send_mail
# send_mail的参数分别是 邮件标题,邮件内容,发件箱(settings.py中设置过的那个),收件箱列表(可以发送给多个人),失败静默(若发送失败,报错提示我们)
send_mail('python django 测试邮件', '你好朋友!人生苦短,我爱python!.', 'hairui@hairuinet.com',
['574601625@qq.com'], fail_silently=False)
以上有个问题就是,你配置好了,不能修改。。。网络大部分是这样写的?http://www.hairuinet.com/
如何写成动态的呢?
我们可以写一个类,初始化的时候可以将信息保存起来,通过判断是否加密验证去做处理。就可以啦!
我已经封装好了!直接拿去用吧
#!/usr/bin/env python
# -*- coding=utf-8 -*-
from smtplib import SMTP_SSL,SMTP
from email.header import Header
from email.mime.text import MIMEText
import smtplib class SendMail: def __init__(self,template_id,sendname, toname, title, content):
self.mail_host = 'smtp.qq.com' # 设置服务器
self.mail_user = 'hairui@hairuinet.com' # 用户名
self.mail_pass = 'hairuinet.com' # 口令
self.mail_port = 25 # 端口
self.mail_ssh = False # 是否是加密端口
self.content = content # 邮件内容
self.sendname = sendname
self.toname = toname
self.title = title # 邮件标题
self.encoding = "utf-8" # 邮件编码格式
self.sender = 'member@kylinclub.org' #发件地址
self.receivers = '574601624@qq.com' # 收件箱 def start(self):
self.msg()
if self.mail_ssh:
self.ssh()
else:
self.pt() def msg(self):
self.msg = MIMEText(self.content, "plain", self.encoding)
self.msg["Subject"] = Header(self.title, self.encoding)
self.msg["from"] = self.mail_user
self.msg["to"] = self.toname def ssh(self):
smtp = SMTP_SSL(self.mail_host)
smtp.set_debuglevel(0)
smtp.ehlo(self.mail_user)
smtp.login(self.mail_user,self.mail_pass)
smtp.sendmail(self.mail_user, self.receivers, self.msg.as_string())
smtp.quit() def pt(self):
server = smtplib.SMTP(self.mail_host, self.mail_port)
server.set_debuglevel(1)
server.login(self.mail_user, self.mail_pass)
server.sendmail(self.mail_user, [self.receivers,], self.msg.as_string())
server.quit() if __name__ == '__main__':
obj = SendMail(1,'海瑞网络','海瑞','密码找回','内容:这个海瑞网络发送的测试邮件',)
obj.start()
本文作者为原著,转载请保留本文链接!http://www.hairuinet.com/
python 之发送邮件服务[原著] 海瑞博客的更多相关文章
- [Python爬虫笔记][随意找个博客入门(一)]
[Python爬虫笔记][随意找个博客入门(一)] 标签(空格分隔): Python 爬虫 2016年暑假 来源博客:挣脱不足与蒙昧 1.简单的爬取特定url的html代码 import urllib ...
- python实现的文本编辑器 - Skycrab - 博客频道 - CSDN.NET
Download Qt, the cross-platform application framework | Qt Project Qt 5.2.1 for Windows 64-bit (VS 2 ...
- python—webshell_醉清风xf_新浪博客
python—webshell_醉清风xf_新浪博客 python—webshell (2012-05-23 09:55:46) 转载▼
- Python爬虫,看看我最近博客都写了啥,带你制作高逼格的数据聚合云图
转载请标明出处: http://blog.csdn.net/forezp/article/details/70198541 本文出自方志朋的博客 今天一时兴起,想用python爬爬自己的博客,通过数据 ...
- Hello Python!用 Python 写一个抓取 CSDN 博客文章的简单爬虫
网络上一提到 Python,总会有一些不知道是黑还是粉的人大喊着:Python 是世界上最好的语言.最近利用业余时间体验了下 Python 语言,并写了个爬虫爬取我 csdn 上关注的几个大神的博客, ...
- python 全栈开发,Day83(博客系统子评论,后台管理,富文本编辑器kindeditor,bs4模块)
一.子评论 必须点击回复,才是子评论!否则是根评论点击回复之后,定位到输入框,同时加入@评论者的用户名 定位输入框 focus focus:获取对象焦点触发事件 先做样式.点击回复之后,定位到输入框, ...
- python 全栈开发,Day81(博客系统个人主页,文章详情页)
一.个人主页 随笔分类 需求:查询当前站点每一个分类的名称以及对应的文章数 完成这个需求,就可以展示左侧的分类 它需要利用分组查询,那么必须要会基于双下划线的查询. 基于双下划线的查询,简单来讲,就是 ...
- python 全栈开发,Day80(博客系统分析,博客主页展示)
一.博客系统分析 数据库的构建 首先,我们分析一个博客系统的功能: 一个博客可以有多个标签(多对多) 一个博客可以有多条评论(一对多) 一个博客只可以有一个类别(多对一) 接下来,我们分析关系的属性: ...
- [python][django学习篇][7]设计博客视图(1)
1上网的流程: 打开浏览器,输入网址(http://zmrenwu.com/) 浏览器根据输入网址,完成以下几件事:1识别服务器地址,2将用户的浏览意图打包成一个http请求,发送给服务器,等待服务器 ...
随机推荐
- httpclient 中post请求重定向
背景:使用httpclient 的post请求进行登录,需要重定向登录,请求重定向后的地址 在httpclient中post请求不像get请求自己可以重定向,实现方式是 判断post请求返回码是否是3 ...
- POJ-3126 Prime Path---BFS+素数打表
题目链接: https://vjudge.net/problem/POJ-3126 题目大意: 给两个四位数a,b 每次改变a中的一位而且改动之后的必须是素数,问最少改动几次可以到b?(永远达不到b就 ...
- Android(java)学习笔记71:Tab标签的使用
1. 案例1---TabProject (1)首先是main.xml文件: <?xml version="1.0" encoding="utf-8"?&g ...
- nginx里面的rewrite配置
哎,我需要静静,刚刚在去怎么优化dom层级,发现更新完代码,层级又蹭蹭蹭的往上涨,顿时没脾气了,还是把昨天的nginx配置总结下,增加点动力,昨天前天两天都在搞这个问题,也是搞的没脾气,网上查了很多资 ...
- python title() upper() lower() 以首字母大写的方式显示每个单词/将字符串改为全部大写或全部小写
以首字母大写的方式显示每个单词 [root@chenbj python]# cat name.py #!/usr/bin/env python # _*_ coding:utf-8 _*_ name ...
- matlab中padarray函数在numpy、python中的实现
a = np.arange(6) a = a.reshape((2, 3)) print np.lib.pad(a, 1, 'symmetric') 运行结果: [[ ] [ ] [ ] [ ]]
- 3.Mysql集群------Mycat分库分表
前言: 分库分表,在本节里是水平切分,就是多个数据库里包含的表是一模一样的. 只是把字段散列的分到不同的库中. 实践: 1.修改schema.xml 这里是在同一台服务器上建立了4个数据库db1,db ...
- 爬虫学习(十一)——bs4基础学习
ba4的介绍: bs4是第三方提供的库,可以将网页生成一个对象,这个网页对象有一些函数和属性,可以快捷的获取网页中的内容和标签 lxml的介绍 lxml是一个文件的解释器,python自带的解释器是: ...
- 多任务版udp聊天器
import socket import threading def send_msg(udp_socket): """获取键盘数据,并将其发送给对方"&quo ...
- selenium学习总结
selenium主要用来做web自动化,分1.0和2.0两个版本,1.0包括selenium IDE.selenium Grid.selenium Remote Control,2.0在1.0的基础上 ...