IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python学习日志12.5 - 传信 -> 正文阅读

[Python知识库]Python学习日志12.5 - 传信

Python学习日志

RBHGO的主页欢迎关注

温馨提示:创作不易,如有转载,注明出处,感谢配合~

目录

前言

这篇算是办公自动化的扩充吧,发送邮件和发送短信的程序写出来复用性也是很高的,每次使用都只要稍微修改特定参数,基本上就能运行起来。它也是帮我们解决重复的劳动步骤,让学习、办公的过程变得轻松愉悦。

下面分享的内容中有*的地方,填入自己的信息就行。

Python学习日志12.5课 - 传信

Python发送电子邮件

即使是在即时通信软件如此发达的2021,电子邮件仍然是在互联网上被广泛使用的应用,公司向应聘者发出录用通知、网站向用户发送一个激活账号的链接、验证码、销售员向客户推广产品等几乎都会通过电子邮件来完成,而这些任务应该都是由程序自动完成的。

就像我们可以用HTTP(超文本传输协议)来访问一个网站一样,发送邮件要使用SMTP(简单邮件传输协议),SMTP也是一个建立在TCP(传输控制协议)提供的可靠数据传输服务的基础上的应用级协议,它规定了邮件的发送者如何跟发送邮件的服务器进行通信的细节,而Python中的smtplib模块将这些操作简化成了几个简单的函数。

"""
Python发送邮件
SMTP -> 简单邮件传输协议 -> simple mail transfer protocol
我们注册的邮箱一般都提供了SMTP服务,我们利用这个服务就可以用Python程序实现邮件发送

Author: RBHGO
Declaration: Mia San Mia ~~~
"""

import smtplib
from email.header import Header
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from urllib.parse import quote


def create_attachment(path, filename):
    with open(f'{path}/{filename}', 'rb') as file:
        attachment = MIMEText(file.read(), 'base64', 'utf-8')
        # 指定内容类型
        attachment['content-type'] = 'application/octet-stream'
        # 将文件名处理成百分号编码(否则汉字无法识别成为乱码)
        filename = quote(filename)
        # 指定如何处置内容
        attachment['content-disposition'] = f'attachment; filename="{filename}"'
    return attachment


# 创建邮件主体对象
email = MIMEMultipart()
# 设置发件人、收件人和主体
email['From'] = Header('7*******7@qq.com')
email['To'] = Header('********@outlook.com')
email['Subject'] = Header('文件请查收', 'utf-8')
# 添加邮件正文内容
content = """8月10号梅西正式宣布加入巴黎圣日尔曼,他将身披30号球衣。"""
email.attach(MIMEText(content, 'plain', 'utf-8'))
# 添加一个附件
email.attach(create_attachment('resources', 'RBHGO的python日志.docx'))

# 创建SMTP_SSL对象(连接邮件服务器)
smtp_obj = smtplib.SMTP_SSL('smtp.qq.com', 465)
# 通过用户名和授权码进行登录(授权码在邮箱设置传输协议中获得)
smtp_obj.login('7*******7@qq.com', 'iv*****mm*****ee')
# 发送邮件(发件人、收件人、邮件内容(字符串))
smtp_obj.sendmail(
    '7*******7@qq.com',
    ['********@outlook.com'],
    email.as_string()
)

Python发送短信

发送短信也是项目中常见的功能,网站的注册码、验证码、其他信息基本上都是通过短信来发送给用户的。有一些网站(短信平台)会提供API接口实现了发送短信的服务(一般这类平台为注册用户提供了一些免费短信数量以及常用开发语言发送短信的demo,可以登录该网站并在用户自服务页面中对短信进行配置)。

我使用的是sendcloud提供的API接口实现了发送短信的服务,当然国内的短信平台很多,读者可以根据自己的需要进行选择(通常会考虑费用预算、短信达到率、使用的难易程度等指标),如果需要在商业项目中使用短信服务建议购买短信平台提供的套餐服务。

"""
Python发短信

Request支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动响应内容的编码,支持国际化的URL和POST数据自动编码。

在python内置模块的基础上进行了高度的封装,从而使得python进行网络请求时,变得人性化,使用Requests可以轻而易举的完成浏览器可有的任何操作。

Author: RBHGO
"""

import random
import requests


def send_message_by_luosimao(tel, message):
    """发送短信"""
    resp = requests.post(
        url='https://sendcloud.sohu.com/v3/#/backend/dashborad.json',
        auth=('api', 'key-bc3e3*****153d*****a*****6f*****'),
        data={
            'mobile': tel,
            'message': message
        },
        timeout=10,
        verify=False
    )
    return resp.json()


def gen_mobile_code(length=6):
    """生成指定长度的手机验证码"""
    return ''.join(random.choices('0123456789', k=length))


def main():
    code = gen_mobile_code()
    message = f'您的短信验证码是{code},请注意保护隐私!【Python分享课】'
    print(send_message_by_luosimao('19*******66', message))


if __name__ == '__main__':
    main()

感谢学习陪伴,您的点赞,评论就是我更新的动力

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-20 15:03:18  更:2021-08-20 15:03:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 9:08:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码