Python--发送邮件和钉钉消息
一、 邮件发送
1. 开通邮箱SMTP服务,并获取 授权码
这个账户是你要使用此邮箱发送邮件的账户,密码不是平时登录邮箱的密码,而是开通 POP3/SMTP
功能后设置的客户端授权密码。
这里以 126
邮箱为例:
2 安装
pip3 install yagmail
3. 基本用法
import yagmail
yag = yagmail.SMTP(user='自己的账号',password='账号的授权码',host='smtp.qq.com', # 邮局的 smtp 地址port='端口号', # 邮局的 smtp 端口smtp_ssl=False)yag.send(to='收件箱账号',subject='邮件主题',contents='邮件内容')
4. 实例
下面是以我的 126 邮箱为例, 使用系统密钥环的方式,向我的 163邮箱发送了一封邮件。
import yagmail# 这个要刚才已经成功开通 SMTP 的邮箱账号
email_user = 'shark@126.com'# 这个必须是客户端授权码,不是登录密码
email_pwd = 'yourpassword'# 这个可以从邮件服务提供商获取
email_host = 'smtp.126.com'# 邮件正文
email_content = """你不是我喜欢的那种人却慢慢变成我喜欢的那个人"""yag = yagmail.SMTP(user=email_user,password=email_pwd,host=email_host,port=25,smtp_ssl=False)
yag.send(to='docker@163.com',subject='告白气球',contents=email_content)
这样就愉快的发送了一封测试邮件到 docker@163.com
的邮箱。
5. 群发附件并且给邮件内容加密
给多个人发送是,只需要把关键字参数 to
的值改成列表即可,列表中放入需要通知的人的邮箱地址。
email_users=["user1@163.com", "user2@126.com"]to=email_users
希望加密邮件内容,也很简单。
大部分运营上提供的加密邮件接收的端口是 465
,把端口改成 465
其实 smtp_ssl=True
这个参数不传也行,因为默认的就是 True
实例图片
保存上面的图片到本地,作为测试之用。
这里保存的名称是 告白气球.jpg
发送附件可以使用 attachments
关键字参数,它的值可以是一个具体的有效路径,也可以是包含有效路径的列表。
代码
import yagmailemail_user = 'shark@126.com'
email_pwd ='yourpassword'
email_host = 'smtp.126.com'email_content = """你不讲真心话
我却在大冒险"""email_image = "./拥抱.jgp"yag = yagmail.SMTP(user=email_user,password=email_pwd,host=email_host,port=465,smtp_ssl=True)
yag.send(to='docker@163.com',subject='告白气球',contents=email_content,attachments=email_image
)
邮件收到显示:
有的时候,发送的邮件会被识别为垃圾邮件
^_^
最简单的还是放在 contents
中。比如:
contents=[email_content, email_image]
在这个列表中,假如是有效的路径,就会作为附件发送,假如不是有效路径,就会作为普通文字发送。
二、发送钉钉消息
钉钉自定义机器人 API 官方文档
1. 自定义机器人
2. 发送给群内所有人
郑重警告⚠️
每个机器人每分钟只可以发送
20
条信息,多了,会被禁止使用10
分钟.
import requestscontent = {"msgtype": "text","text": {"content": "shark 奥利给!" #需添加上机器人中自定义的关键词},"at": {# 发送给群里的所有人"isAtAll": True}
}headers = {"Content-Type": "application/json;charset=utf-8"}url = "https://oapi.dingtalk.com/robot/send?access_token=你自己的 token"r = requests.post(url=url,headers=headers,json=content)
print(r.content.decode())
3. 发给指定的人
需要知道他们的注册钉钉时候使用的手机号
import requestscontent = {"msgtype": "text","text": {"content": "shark 奥利给!"},"at": {"atMobiles": [# 单独 @ 某个人,使用绑定的手机号,# 多个人用户英文逗号隔开"131xxxxxx811","137xxxxxxxxx"]}
}headers = {"Content-Type": "application/json;charset=utf-8"}url = "https://oapi.dingtalk.com/robot/send?access_token=你自己的 token"r = requests.post(url=url,headers=headers,json=content)
print(r.content.decode(encoding="utf-8")) # 指定字符编码
Python--发送邮件和钉钉消息相关推荐
- Python数据分析实战【六】:用Python实现自动发送邮件和发送钉钉消息【文末源码地址】
目录 发送邮件源码 发送钉钉消息源码 源码地址 本文可以学习到以下内容: 使用requests库发送钉钉消息 使用email和smtplib库发送邮件 使用163邮箱服务,自动发送邮件及附件 发送邮件 ...
- python自动化高效办公第二期,带你项目实战【二】{数据可视化、发送邮件(定时任务监控)、python聊天机器人(基于微信、钉钉)}
相关文章和数据源: python自动化高效办公第二期,带你项目实战[一]{excel数据处理.批量化生成word模板.pdf和ppt等自动化操作} Python自动化办公--Pandas玩转Excel ...
- Python学习小组课程P6-Python办公(3)邮件与钉钉消息通知
Python办公(3)邮件与钉钉消息通知 一.前言 二.知识点 1 发送邮件 2 钉钉机器人消息通知 一.前言 注意:此为内部小组学习资料,非售卖品,仅供学习参考. 本系列课程: Python学习小组 ...
- python timestamp转string_Python操作钉钉机器人发送各种消息
环境:python3.x 使用模块:requests,json 一:创建钉钉群聊机器人 第一步,创建一个钉钉群聊自定义机器人 记住加签的密钥,忘记后也可在创建成功后查看(这里使用加签的方式) 完成后会 ...
- python调用钉钉API发送消息
#!/usr/bin/env python # -*- coding: utf-8 -*- # 2017-8-20 钉钉API发送消息import urllib, urllib2 import req ...
- python 钉钉消息推送_python3实现钉钉消息推送的方法示例
背景 偶然发现一个python实现的按照农历/阴历推送消息提醒的程序,钉钉群消息推送.此处总结并对其可推送的消息做. DingtalkNotice 环境:python3.7 安装: pip insta ...
- 钉钉机器人自动回复消息_用Python自动发送钉钉数据消息
♚ 作者:王向君,一个不会运营的数据分析师不是好产品经理 博客:zhihu.com/people/chen-guan-xi-11-65 现在大部分公司都使用钉钉作为内部的主要沟通工具,钉钉消息基本都上 ...
- python向钉钉发送本地文件_Python实现向钉钉群发送消息通知
一 钉钉机器人使用场景 钉钉机器人是钉钉群的高级扩展功能,可以简单实现将第三方服务信息聚合到钉钉群中,实现信息的自动同步,常用场景如下:聚合Github.Gitlab等源码管理服务,实现源码更新同步: ...
- python 钉钉机器人发送图片_利用Python自动发送钉钉数据消息
现在大部分公司都使用钉钉作为内部的主要沟通工具,钉钉消息基本都上都能快速有效的被阅读,打开率会比邮件高上不少.所以准备使用钉钉来播报平台每日的成交额,并附上一些鼓励的话和图片.起到一个激励团队的作用 ...
- python钉钉机器人发送消息_python调用钉钉机器人发送消息
#!/usr/bin/env python # -*- coding: utf-8 -*- # Author: 刘小懒 # example:python dingding.py 参数1 参数2 参数3 ...
最新文章
- linux shell awk next,使用awk的next命令的方法
- 刘强东:第四次零售革命意义将超互联网
- Windows-Linux:Windows系统下的命令类似Linux系统下的所有命令集合
- 【实战】用机器学习来提升你的用户增长:(三、预测客户的终生价值)
- 计算机系统通过执行通道程序完成数据,批量数据传送
- 更改 pandas dataframe 中两列的位置
- AC自动机(写的很乱,仅记录留作自己复习)
- 事务和分布式事务解释
- LeetCode 2019 力扣杯全国秋季编程大赛
- asp对php预览,Dreamweaver中预览PHP和ASP
- Java开发笔记(五十六)利用枚举类型实现高级常量
- 联想r720内存频率_锐龙H真给劲儿 联想拯救者R7000 2020首测
- centos django mysql安装
- Atitit 通用服务端代理接口 转接口 attilax总结
- 多元统计分析主成分分析何晓群版课后作业
- 分页控件AspNetPager的用法
- UG NX 12抽取复合曲线
- GitHub前50名的Objective-C动画相关库相关推荐,请自行研究
- 排球积分程序功能说明书
- oracle写一本日历
热门文章
- std::future、std::promise、std::packaged_task、std::async
- Picasso入门教程(十二)Cache Indicators,Logging Stats
- 数学与计算机学院英文翻译,数学与计算机,mathematics and computer science,音标,读音,翻译,英文例句,英语词典...
- css 首个元素,类的第一个元素的CSS选择器
- python删除指定元素 多个_Python List remove()删除多个元素
- domoticz折腾指南--通过esp_easy固件控制继电器开关
- pandas生成日期去掉时分秒
- 腾讯云服务器被攻击我是这样应对的
- set的用法及短语_set的用法总结大全
- 山东大学2019上半学期增强现实课程重点整理