一、 邮件发送

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--发送邮件和钉钉消息相关推荐

  1. Python数据分析实战【六】:用Python实现自动发送邮件和发送钉钉消息【文末源码地址】

    目录 发送邮件源码 发送钉钉消息源码 源码地址 本文可以学习到以下内容: 使用requests库发送钉钉消息 使用email和smtplib库发送邮件 使用163邮箱服务,自动发送邮件及附件 发送邮件 ...

  2. python自动化高效办公第二期,带你项目实战【二】{数据可视化、发送邮件(定时任务监控)、python聊天机器人(基于微信、钉钉)}

    相关文章和数据源: python自动化高效办公第二期,带你项目实战[一]{excel数据处理.批量化生成word模板.pdf和ppt等自动化操作} Python自动化办公--Pandas玩转Excel ...

  3. Python学习小组课程P6-Python办公(3)邮件与钉钉消息通知

    Python办公(3)邮件与钉钉消息通知 一.前言 二.知识点 1 发送邮件 2 钉钉机器人消息通知 一.前言 注意:此为内部小组学习资料,非售卖品,仅供学习参考. 本系列课程: Python学习小组 ...

  4. python timestamp转string_Python操作钉钉机器人发送各种消息

    环境:python3.x 使用模块:requests,json 一:创建钉钉群聊机器人 第一步,创建一个钉钉群聊自定义机器人 记住加签的密钥,忘记后也可在创建成功后查看(这里使用加签的方式) 完成后会 ...

  5. python调用钉钉API发送消息

    #!/usr/bin/env python # -*- coding: utf-8 -*- # 2017-8-20 钉钉API发送消息import urllib, urllib2 import req ...

  6. python 钉钉消息推送_python3实现钉钉消息推送的方法示例

    背景 偶然发现一个python实现的按照农历/阴历推送消息提醒的程序,钉钉群消息推送.此处总结并对其可推送的消息做. DingtalkNotice 环境:python3.7 安装: pip insta ...

  7. 钉钉机器人自动回复消息_用Python自动发送钉钉数据消息

    ♚ 作者:王向君,一个不会运营的数据分析师不是好产品经理 博客:zhihu.com/people/chen-guan-xi-11-65 现在大部分公司都使用钉钉作为内部的主要沟通工具,钉钉消息基本都上 ...

  8. python向钉钉发送本地文件_Python实现向钉钉群发送消息通知

    一 钉钉机器人使用场景 钉钉机器人是钉钉群的高级扩展功能,可以简单实现将第三方服务信息聚合到钉钉群中,实现信息的自动同步,常用场景如下:聚合Github.Gitlab等源码管理服务,实现源码更新同步: ...

  9. python 钉钉机器人发送图片_利用Python自动发送钉钉数据消息

    现在大部分公司都使用钉钉作为内部的主要沟通工具,钉钉消息基本都上都能快速有效的被阅读,打开率会比邮件高上不少.所以准备使用钉钉来播报平台每日的成交额,并附上一些鼓励的话和图片.起到一个激励团队的作用 ...

  10. python钉钉机器人发送消息_python调用钉钉机器人发送消息

    #!/usr/bin/env python # -*- coding: utf-8 -*- # Author: 刘小懒 # example:python dingding.py 参数1 参数2 参数3 ...

最新文章

  1. linux shell awk next,使用awk的next命令的方法
  2. 刘强东:第四次零售革命意义将超互联网
  3. Windows-Linux:Windows系统下的命令类似Linux系统下的所有命令集合
  4. 【实战】用机器学习来提升你的用户增长:(三、预测客户的终生价值)
  5. 计算机系统通过执行通道程序完成数据,批量数据传送
  6. 更改 pandas dataframe 中两列的位置
  7. AC自动机(写的很乱,仅记录留作自己复习)
  8. 事务和分布式事务解释
  9. LeetCode 2019 力扣杯全国秋季编程大赛
  10. asp对php预览,Dreamweaver中预览PHP和ASP
  11. Java开发笔记(五十六)利用枚举类型实现高级常量
  12. 联想r720内存频率_锐龙H真给劲儿 联想拯救者R7000 2020首测
  13. centos django mysql安装
  14. Atitit 通用服务端代理接口 转接口 attilax总结
  15. 多元统计分析主成分分析何晓群版课后作业
  16. 分页控件AspNetPager的用法
  17. UG NX 12抽取复合曲线
  18. GitHub前50名的Objective-C动画相关库相关推荐,请自行研究
  19. 排球积分程序功能说明书
  20. oracle写一本日历

热门文章

  1. std::future、std::promise、std::packaged_task、std::async
  2. Picasso入门教程(十二)Cache Indicators,Logging Stats
  3. 数学与计算机学院英文翻译,数学与计算机,mathematics and computer science,音标,读音,翻译,英文例句,英语词典...
  4. css 首个元素,类的第一个元素的CSS选择器
  5. python删除指定元素 多个_Python List remove()删除多个元素
  6. domoticz折腾指南--通过esp_easy固件控制继电器开关
  7. pandas生成日期去掉时分秒
  8. 腾讯云服务器被攻击我是这样应对的
  9. set的用法及短语_set的用法总结大全
  10. 山东大学2019上半学期增强现实课程重点整理