邮件发送

- 简介:
- 邮件服务器、用户名、密码
- 相关协议:
- SMTP:简单邮件传输协议
- POP3:邮局通讯协议
- IMAP:交互式邮件存取协议
- SMTP协议默认端口是25
- 用途:网站注册激活、通知、找回密码等。
- 库:smtplib
- 示例:
import os
import smtplib
from email.mime.text import MIMEText # 邮箱服务器
mail_server = 'smtp.1000phone.com' # 用户名
mail_user = 'lijie@1000phone.com' # 密码 或 授权码(QQ邮箱)
# 为了不对外公开隐私信息,我们可以通过环境变量获取
mail_pwd = os.getenv('MAIL_PASSWORD', '123456') # 发送的邮件消息
content = '请点击下面链接完成激活<a href="http://www.baidu.com">激活</a>' # 创建用于发送的邮件消息对象
# 若发送的消息是HTML,需要指定第二个参数进行说明
message = MIMEText(content, 'html') # 设置主题
message['Subject'] = '账户激活' # 设置发送者
message['From'] = mail_user # 创建一个用于发送邮件的对象,加密传输使用这个类:smtplib.SMTP_SSL('smtp.qq.com', 465)
mail = smtplib.SMTP(mail_server, 25) # 身份认证
mail.login(mail_user, mail_pwd) # 接收地址,单个传递字符串,多个传列表
to = '488868561@qq.com' # 发送邮件
mail.sendmail(mail_user, to, message.as_string()) # 结束
mail.quit() - 总结:
- 邮箱服务器配置
- 创建用于发送的消息对象MIMEText
- 创建用于发送邮件的对象smtplib.SMTP/smtplib.SMTP_SSL
- 使用邮件发送对象发送邮件消息对象 预备知识 - http.client:相当于浏览器向服务器发送请求
import http.client # 创建对象(相当于一个浏览器)
connect = http.client.HTTPConnection('www.baidu.com') # 发送请求
connect.request(method='GET', url='http://www.baidu.com') # 获取响应
resp = connect.getresponse() # 打印响应
print(resp.read().decode('utf-8')) - json与xml
- 说明:使用非常广泛的数据传输格式,现在使用较多的时json。
- JSON使用:
import json d = {'name': 'xiaoming', 'age': 20}
# 将字典对象转换为JSON字符串
s = json.dumps(d)
print(s)
print(type(s)) # 将JSON字符串转换为字典对象
d2 = json.loads(s)
print(d2)
print(type(d2))
- urllib.parse
from urllib.parse import urlencode, urlparse, parse_qs d = {'name':'xiaoming', 'age': 20}
# 将字典数据进行URL编码:name=xiaoming&age=20
print(urlencode(d)) url = 'https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd=python&rsv_pq=ac798cd20001b3c5&rsv_t=8b4eWBso%2FMiB2fKr%2FHbj8K8ajXQF9Zrm%2F72a811WkQgVAAliA%2BP66as7QHQ&rqlang=cn&rsv_enter=1&rsv_sug3=7&rsv_sug1=5&rsv_sug7=101&rsv_sug2=0&inputT=2797&rsv_sug4=3093&rsv_sug=1' # 解析url
p = urlparse(url)
# print(p.query) # 解析参数:将请求字符串转换为字典
d2 = parse_qs(p.query)
print(d2) 短信发送 - 说明:注册验证码、通知消息、营销短信等
- 平台:阿里、秒嘀、云之讯、...
- 认识:云之讯(www.ucpaas.com)
- 实例:
# 账户id
sid = 'c1d54bae74e733d2b7e39f19ff006244' # 账户token
token = '2426bff7df8ff95f59fcbcdce3362c58' # 应用标识
appid = 'fac78e7f7f0647c7a47c4809ff564f5c' # 模板id
templateid = '291768' # 模板参数,多个使用英文逗号隔开
param = 'dahua' # 手机号
mobile = '17596129603' # 参数字典
form_data = {
'sid': sid,
'token': token,
'appid': appid,
'templateid': templateid,
'param': param,
'mobile': mobile
}
# 将字典转换为JSON字符串
import json
form_data = json.dumps(form_data)
# print(form_data) # 创建'浏览器'对象
import http.client connect = http.client.HTTPConnection('open.ucpaas.com') # 请求地址
url = 'https://open.ucpaas.com/ol/sms/sendsms' # 请求头
headers = {
'Accept': 'application/json',
'Content-Type': 'application/json;charset=utf-8'
} # 发送请求
connect.request(method='POST', url=url, body=form_data, headers=headers) # 获取响应
resp = connect.getresponse() # 打印结果
print(resp.read().decode('utf-8'))

python学习总结------邮件与短信的更多相关文章

  1. Python基础—14-邮件与短信

    邮件与短信 邮件发送 简介: 邮件服务器.账户.密码 相关协议:SMTP.POP3.IMAP 默认TCP协议端口:25 用途:经常用在一个网站的注册激活.通知.找回密码等场景 库:smtplib 示例 ...

  2. zabbix告警邮件、短信发送错误快速排查方法

    zabbix告警邮件.短信发送错误快速排查方法 背景 zabbix告警邮件.短信经常有同事反馈发送错误的情况,这个问题排查的角度很多,那么最快捷的角度是什么呢? 在我看来,最快的角度就是判断这个告警邮 ...

  3. python调用腾讯云短信接口

    目录 python调用腾讯云短信接口 账号注册 python中封装腾讯云短信接口 python调用腾讯云短信接口 账号注册 去腾讯云官网注册一个腾讯云账号,通过实名认证 然后开通短信服务,创建短信应用 ...

  4. 基于日志服务的GrowthHacking(1):数据埋点和采集(APP、Web、邮件、短信、二维码埋点技术)

    数据质量决定运营分析的质量 在上文中,我们介绍了GrowthHacking的整体架构,其中数据采集是整个数据分析的基础,只有有了数据,才能进行有价值的分析:只有高质量的数据,才能驱动高质量的运营分析. ...

  5. 【Android学习】调用系统短信、电话

    今天全心投入Android学习已经有一段时间了,从起初的啥也不懂,到现在半知半解状态,随笔记录些简单且常用的系统功能代码. 调用Android系统短信,其实调用短信非常简单,一个方法就可以搞定.我们可 ...

  6. Flask实战第67天:Flask+Celery实现邮件和短信异步发送

    之前在项目中我们发送邮件和 短信都是阻塞的,现在我们来利用Celery来优化它们 官方使用文档: http://flask.pocoo.org/docs/1.0/patterns/celery/ re ...

  7. iOS:实现邮件和短信发送的简单示例

    发送邮件1.导入库文件:MessageUI.framework2.引入头文件3.实现代理<MFMailComposeViewControllerDelegate> 和 <UINavi ...

  8. 一百四十七:CMS系统之celery实现邮件和短信异步发送

    celery工作原理 celery官方文档:https://docs.celeryproject.org/en/latest/ 安装:pip install celery windows下还需安装ev ...

  9. Python使用腾讯云-短信服务发送手机短信

    目前[腾讯云短信]为客户提供[国内短信].[国内语音]和[海外短信]三大服务,腾讯云短信SDK支持以下操作: 国内短信 国内短信支持操作: • 指定模板单发短信 • 指定模板群发短信 • 拉取短信回执 ...

随机推荐

  1. 【洛谷P3811】[模板]乘法逆元

    乘法逆元 题目链接 求逆元的三种方式: 1.扩欧 i*x≡1 (mod p) 可以化为:x*i+y*p=1 exgcd求x即可 inline void exgcd(int a,int b,int &a ...

  2. AngularJS 控制器属性

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  3. TIDB3 —— 三篇文章了解 TiDB 技术内幕 - 说计算

    原文地址:https://pingcap.com/blog-cn/tidb-internal-2/ 关系模型到 Key-Value 模型的映射 在这我们将关系模型简单理解为 Table 和 SQL 语 ...

  4. 菜鸟崛起 DB Chapter 2 MySQL 5.6的概述与安装

    在上文菜鸟崛起 DB Chapter 1 数据库概述我们初步认识了数据库,也知道市面上常见的几种数据库,下面我们就针对常见的MySQL数据库展开对DataBase的探讨. 2.1  MySQL介绍 M ...

  5. jenkins添加环境变量 ,win 10的 环境变量如下,win7 就是不加也可以运行,不报 “python 不是内部命令 ” 的错误。

    jenkins 添加win 10的 环境变量如下,win7 就是不加也可以运行,不报 “python 不是内部命令 ” 的错误,暂时不知道怎么回事.    jenkins这样添加环境变量 .

  6. swiper不能手指滑动翻页的解决办法

    /*当swiper中的slide的里面放入长度在手机上不能滑动的时候 放入这段代码就可以了*/    var startScroll, touchStart, touchCurrent;        ...

  7. [HAOI2007]理想的正方形(随机化,骗分?)

    题目描述 有一个a*b的整数组成的矩阵,现请你从中找出一个n*n的正方形区域,使得该区域所有数中的最大值和最小值的差最小. 输入输出格式 输入格式: 第一行为3个整数,分别表示a,b,n的值 第二行至 ...

  8. 【HDOJ 1272】小希的迷宫(并查集+无环图)

    描述 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道 ...

  9. jquery添加html代码的几种方法

    经常用jq来DOM添加html代码 就总结了jq里面最常用的动态添加html代码的方法 append在元素内部的尾部加上元素 prepend在元素内部的前部加上元素 after在元素外部的尾部加上元素 ...

  10. php如何将base64数据流文件转换为图片文件?

    2017-03-07 在开发中,自己遇到一个前端在上传图片的时候,使用的base64数据流文件显示的图片. 也就是说 <img src="data:image/jpg;base64,& ...