- Paramiko
Paramiko利用Python C扩展进行了低级加密(Cryptography),但它本身是围绕SSH网络概念的纯Python接口。它包含了SSHClient
和Transport
两种连接方式。如果需要在远程服务器上进行文件传输等操作时,使用Transport
连接
class ssh_connect():
def __init__(self, info):
"""
初始化SSH并连接
Arguments
info {list} -- 远程服务器信息【服务器ip, 用户名, 端口(int), 密码】
"""
ip, user, port, password = info
self.ssh = paramiko.SSHClient()
self.ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
self.ssh.connect(hostname=ip, port=port, username=user, password=password)
def command(self, ucommand):
"""
执行命令语句
Arguments
ucommand {str} -- 命令语句
"""
stdin, stdout, stderr = self.ssh.exec_command(ucommand)
res, err = stdout.read(), stderr.read()
result = res if res else err
return result.decode()
- yagmail
yagmail是一个python实现自动发送邮件的库。自动发送功能需要先开启邮箱的SMTP服务。
class Mail:
def __init__(self, email, password):
"""
初始化邮箱/类似登录
Arguments:
email {str} -- 发送者邮箱
password {str} -- 邮箱的授权码
"""
self.email = email
self.password = password
self.yag = yagmail.SMTP(
host='smtp.qq.com', user=self.email,
password=self.password, smtp_ssl=True
)
def sendmail(self, msg, title, receivers):
"""
发送邮件
Arguments:
msg {str} -- 邮件正文
title {str} -- 邮件标题
receivers {list} -- 邮件接收者,数组
"""
try:
self.yag.send(receivers, title, msg)
print("邮件发送成功")
except BaseException as e:
print(e)
print("Error: 无法发送邮件")