邮件和JSON和requests模块

【●】邮件和JSON

一、邮件编程
1.SMTP概述
● SMTP 即简单邮件传输协议,使用TCP协议25端口
● 它是一组用来由源地址到目的地址传递邮件的规则,由他来控制信件的中转方式
● python的smtplib提供了一种很方便的途径发送电子邮件。它对SMTP协议进行了简单的封装。 
 
2.SMTP对象
● Python发送邮件,第一步是创建SMTP对象
● 创建SMTP对象也可以不给定参数,之后再通过对象的其他方法进行绑定。


3.设置邮件
● 标准邮件需要三个头部信息
— From:发件人
— To:收件人
— Subject:主题


4.sendmail方法
● Python SMTP  对象使用 sendmail 方法发送邮件
● sendmail 方法三个必须的参数有:
— 收件人
— 发件人
— 消息主体是一个字符串,表示邮件
● 将准备好的邮件发送


5.发送邮件
email 模块, 用于准备邮件内容 
smtplib 模块, 用于与邮件服务器连接并发送邮件

● 例子
[root@dc youjian]# vim mail.py
#导入模块
from email.mime.text import MIMEText  #指定邮件正文模块
from email.header import Header       #指定邮件头部信息模块
import smtplib  #发送邮件模块

m = MIMEText('python test mail\n','plain' , 'utf8')  #邮件正文

#为邮件添加头部信息
m['From'] = Header("root",'utf8') # 发件人
m['to'] = Header('bob','utf8') #收件人
m['Subject'] = Header('GOOD', 'utf8') #邮件标题

#发送邮件
s = smtplib.SMTP('127.0.0.1') #指定邮件服务器
sender = "root" #指定发件人
receivers = ["bob","tom"] #指定收件人
s.sendmail(sender , receivers,m.as_bytes()) #发送邮件

[root@dc youjian]# python3 mail.py   #执行脚本
[root@dc youjian]# mail -u bob       查看指定用户下是否收到邮件并查看

Heirloom Mail version 12.5 7/5/10.  Type ? for help.
"/var/mail/bob": 1 message 1 new
>N  1 =?utf8?q?root?=@dc.t  Wed Jun 30 13:29  19/577   "GOOD"
& 1   #输入序列号查看邮件
Message  1:
From root@dc.tedu.cn  Wed Jun 30 13:29:45 2021
Return-Path: <root@dc.tedu.cn>
X-Original-To: bob
Delivered-To: bob@dc.tedu.cn
Content-Type: text/plain; charset="utf8"
From: root@dc.tedu.cn
to: jerry@dc.tedu.cn
Subject: GOOD
Date: Wed, 30 Jun 2021 13:29:45 -0400 (EDT)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
您可以使用 Dingtalk Chatbot API 和 Python 的邮件模块来实现钉钉推送邮件的功能。具体步骤如下: 1. 在钉钉工作台中创建自定义机器人,并获取 webhook 地址。 2. 在 Python 中使用 requests 模块发送带有邮件附件的邮件。 3. 将邮件附件转换为 Base64 编码的字符串,并将其作为 JSON 数据发送给钉钉机器人的 webhook 地址。 以下是示例代码: ``` import requests import smtplib import base64 from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.application import MIMEApplication # 钉钉机器人 webhook 地址 DINGTALK_WEBHOOK_URL = 'https://oapi.dingtalk.com/robot/send?access_token=YOUR_ACCESS_TOKEN_HERE' # 发送邮件的相关信息 MAIL_FROM = 'youremail@example.com' MAIL_TO = 'recipient@example.com' MAIL_SUBJECT = 'Test Email with Attachment' MAIL_BODY = 'This is a test email with attachment' # 邮件附件的本地路径 FILE_PATH = '/path/to/attachment.txt' FILE_NAME = 'attachment.txt' # 将附件转换为 Base64 编码的字符串 with open(FILE_PATH, 'rb') as f: attachment_content = f.read() attachment_base64 = base64.b64encode(attachment_content).decode() # 构建邮件对象 msg = MIMEMultipart() msg['From'] = MAIL_FROM msg['To'] = MAIL_TO msg['Subject'] = MAIL_SUBJECT # 添加邮件正文 body = MIMEText(MAIL_BODY) msg.attach(body) # 添加邮件附件 attachment = MIMEApplication(attachment_content, Name=FILE_NAME) attachment['Content-Disposition'] = 'attachment; filename="%s"' % FILE_NAME msg.attach(attachment) # 发送邮件 smtp = smtplib.SMTP('smtp.example.com') smtp.login('username', 'password') smtp.send_message(msg) smtp.quit() # 发送钉钉消息 dingtalk_data = { 'msgtype': 'file', 'file': { 'media_id': attachment_base64, 'file_name': FILE_NAME } } requests.post(DINGTALK_WEBHOOK_URL, json=dingtalk_data) ``` 注意:需要将 `YOUR_ACCESS_TOKEN_HERE` 改为您自己的钉钉机器人的 access token。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值