Python学习之八_调用Outlook发送邮件以及调用远程windows上面的python

python,学习,调用,outlook,发送,邮件,以及,远程,windows,上面 · 浏览次数 : 76

小编点评

**步骤 1:安装 pywin32** * 下载并安装 pywin32 模块:`pip install pywin32` **步骤 2:设置 pywin32 模块** * 从 `pywin32.client` 模块中导入 `win32outlook` 对象。 * 设置以下属性: * `outlook.application`:打开 Outlook 应用对象。 * `mail`:创建新的电子邮件对象。 **步骤 3:设置电子邮件信息** * `mail.To`:设置收件人地址。 * `mail.CC`:设置抄送人地址。 * `mail.Bcc`:设置抄送人地址。 * `mail.Subject`:设置邮件主题。 * `mail.Body`:设置邮件正文。 * `mail.Importance`:设置邮件重要性。 **步骤 4:添加附件** * 使用 `mail.Attachments.Add()` 方法添加附件。 * `mail.Attachments.Add(r'F:\\dbcomparetools\\sudbcomparetools\\sudbcompare使用说明.pdf')`:添加附件路径为 `F:\\dbcomparetools\\sudbcomparetools\\sudbcompare使用说明.pdf` 的附件。 **步骤 5:发送电子邮件** * 使用 `mail.Send()` 方法发送电子邮件。 **步骤 6:关闭连接** * 使用 `shell_id` 获取 shell 的 ID。 * 使用 `p.cleanup_command()` 方法关闭 shell。 **示例代码:** ```python import win32com.client as win32outlook # 连接 Outlook 应用 outlook = win32outlook.Dispatch('outlook.application') # 创建电子邮件对象 mail = outlook.CreateItem(0) # 设置收件人 mail.To = 'zhaobsh@inspur.com' # 设置其他电子邮件信息 mail.Subject = '测试python' mail.Body = '这是一封测试邮件' mail.Importance = 2 # 添加附件 mail.Attachments.Add(r'F:\\dbcomparetools\\sudbcomparetools\\sudbcompare使用说明.pdf') # 发送电子邮件 mail.Send() # 关闭连接 outlook.Quit() ```

正文

Python学习之八_调用Outlook发送邮件以及调用远程windows上面的python


摘要

之前只有一个需求是发送加密邮件.
之前一直是使用linux进行发送.但是总是无法发送加密邮件. 
最近学习python, 发现可以使用 python来调用outlook来发送邮件.
这样就比较简单了. 
可以直接使用outlook的加密处理. 
但是我们这边只有windows的outlook客户端. linux发送的话还稍微复杂一点. 
这里准备总结一下循序渐进的处理

邮件发送与准备

需要安装一个模块 pywin32
注意很多模块名安装与代码里面是不一样的. 

安装好pywin32之后就可以进行部分参数的设置. 
注意这里学习自:
https://blog.csdn.net/qq_42692386/article/details/118226919

编写简单代码

# coding=utf-8
import win32com.client as win32

outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = 'zhaobsh@inspur.com'  #收件人
mail.CC = 'zhaobsh@inspur.com'  # 抄送人
mail.Bcc ='zhaobsh@inspur.com' #密抄收件人
mail.Subject = '测试python'  #邮件主题
mail.Body = '这是一封测试邮件'  #邮件正文
mail.Importance = 2  #设置重要性为高
mail.Attachments.Add(r'F:\dbcomparetools\sudbcomparetools\sudbcompare使用说明.pdf')  #添加附件
mail.Send()   #发送

Python调用其他Windows机器执行命令-环境设置

第一步需要打开被调用机器的wsman进行服务使用
学习的网页为:
https://blog.csdn.net/Together_CZ/article/details/86623977#comments_12356187
主要步骤是
被调用的机器 使用管理员打开 powershell
然后执行命令
注意:需要在被控机上开启以下服务:

#针对winrm service 进行基础配置:
    winrm quickconfig
#查看winrm service listener:
    winrm e winrm/config/listener
#为winrm service 配置auth:
    winrm set winrm/config/service/auth '@{Basic="true"}'
#为winrm service 配置加密方式为允许非加密:
    winrm set winrm/config/service '@{AllowUnencrypted="true"}'
    winrm set winrm/config/Client '@{AllowUnencrypted="true"}'

安装必备的组件以及执行源端机器的python脚本

pip install pywinrm
可以在pycharm里面进行安装. 

在其他机器执行命令如下:
# coding=utf-8
from winrm.protocol import Protocol

p = Protocol(
    endpoint='http://10.110.xxx.xxxx:5985/wsman',
    transport='ntlm',
    username=r'administrator',
    password='Mypassword',
    server_cert_validation='ignore')
shell_id = p.open_shell()
command_id = p.run_command(shell_id, b'python D:/pythonProjects/zhaobsh.py', ['/all'])
std_out, std_err, status_code = p.get_command_output(shell_id, command_id)
p.cleanup_command(shell_id, command_id)
print(std_out, status_code)
p.close_shell(shell_id)

调用cmd的计划下一节进行学习.

与Python学习之八_调用Outlook发送邮件以及调用远程windows上面的python相似的内容:

Python学习之八_调用Outlook发送邮件以及调用远程windows上面的python

Python学习之八_调用Outlook发送邮件以及调用远程windows上面的python 摘要 之前只有一个需求是发送加密邮件. 之前一直是使用linux进行发送.但是总是无法发送加密邮件. 最近学习python, 发现可以使用 python来调用outlook来发送邮件. 这样就比较简单了.

gRPC入门学习之旅(八)

gRPC是一个高性能、通用的开源远程过程调用(RPC)框架,基于底层HTTP/2协议标准和协议层Protobuf序列化协议开发, gRPC 客户端和服务端可以在多种环境中运行和交互。你可以用Java创建一个 gRPC 服务端,用 Go、Python、C# 来创建客户端。本系统文章详细描述了如何创建一...

Python学习之四_部分battery的学习

Python学习之四_部分battery的学习 CentOS升级pip的方法 yum install python3 之后, 一般centos的版本都很低, 有时候很多module 是无法安装的. 一般可以通过他进行升级: pip3 install -U pip 注意如果无法升级, 可以先这样处理

Python学习之五_字符串处理生成查询SQL

Python学习之五_字符串处理生成查询SQL 前言 昨天想给同事讲解一下获取查询部分表核心列信息的SQL方法 也写好了一个简单文档. 但是感觉不是很优雅. 最近两三天晚上一直在学习Python. 想将昨天的文档处理成一个工具的方式. 将查询SQL展示出来. 然后再由同事手工检查确认. 增加时间范围

Python学习之六_同时访问Oracle和Mysql的方法

Python学习之六_同时访问Oracle和Mysql的方法 背景 jaydebeapi 可以访问大部分数据库. 但是他有一个问题是仅能够访问一种类型的数据库. 如果同事连接两种数据库,那么就会出现问题 会有如下的提示: TypeError: Class com.mysql.cj.jdbc.Driv

Python学习之七_input和print

Python学习之七_input和print 摘要 python3 之后 函数必须带 () 了 因为我开始学习的比较晚, 所以准备Python3开始学起 前面主要是模仿别人的代码进行学习 后续慢慢学习 使用python调用ebpf等内容. 这里简单先总结一下input和print的函数. 作为一个学

Python学习之九_winrm执行远程机器的cmd命令

Python学习之九_winrm执行远程机器的cmd命令 winrm # 注意如下命令需要按照顺序执行. # 打开powershell的管理员模式进行如下的操作. set-executionpolicy remotesigned winrm quickconfig winrm set winrm/c

Python学习之十_paramiko的简单学习

Python学习之十_paramiko的简单学习 简介 pywinrm 是python用于连接访问windows的工具 paramiko 是python用于连接访问linux的工具 ansible等工具很多也是基于类似的组件进行的处理 连接不同的系统进行命令行的操作. paramiko的简介 par

Python学习之十一_Windows获取硬件信息

Python学习之十一_Windows获取硬件信息 简介 网上找了一些方法简单整理了下,可以快速获取部分信息 包含机器名称等. 以及序列号相关 部分学习来源: https://blog.51cto.com/u_15354476/5339864 源码 import psutil import wmi

Python学习之十三_pip的学习

Python学习之十三_pip的学习 pip的含义 pip: pip is the package installer for Python. You can use pip to install packages from the Python Package Index and other in