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的更多相关文章

  1. 在Windows 上的 Python

    在 Windows 上, 安装 Python 有两种选择. ActiveState 制作了一个 Windows 上的 Python 安装程序称为 ActivePython, 它包含了一个完整的 Pyt ...

  2. VBS调用OUTLOOK发送邮件,windows计划任务定时拉起VBS调用OUTLOOK发送邮件

    OUTLOOK有延迟传递功能,可延迟传递的发送邮件在功能设计时(mircosoft的support帮助页的解释)就是邮件发送时的时间而不是邮件发送成功后的时间.比如早上10点发一封11点后的延迟传递邮 ...

  3. 如何在Windows上使用Python进行开发

    本文由葡萄城技术团队于原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 一直以来C#都是微软在编程语言方面最为显著的Tag,但时至今日Python ...

  4. windows 上执行python pywin32.exe

    大家熟知的python脚本可以在linux系统上直接运行,因为linux上会安装python编译器 然而windows不会安装,如果想要别人直接运行你发布的python脚本,一种方法是在他的windo ...

  5. windows上,python安装非官方包,提示error: Unable to find vcvarsall.bat

    在windows机器上安装python非官方包,如果环境只是用于开发,不作任何测试的话,最好的解决办法是: 在Linux上pip安装好之后,把python根目录lib/python3.6/site-p ...

  6. 在 Windows 上使用 Python 进行 web 开发

    本文由葡萄城技术团队于原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 上一篇我们介绍了在Windows 10下进行初学者入门开发Python的指 ...

  7. windows上安装python虚拟环境

    一.windows上安装python虚拟环境 1.安装pip install virtualenvvirtualenv --version 2.新建一个python虚拟环境virtual_env_01 ...

  8. 【Python学习之八】设计模式和异常

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 python3.6 一.设计模式1.单例模式确保某一个类只有一个实例, ...

  9. Python学习:9.模块的安装以及调用模块

    什么是模块 在Python中,模块其实也就是包含python代码的文件,我们为什么要使用模块?在我们以后写代码的时候,我们会发现有很多功能需要经常使用,那我们想要使用这些功能怎么办,要再把那些代码在敲 ...

  10. Python学习笔记_我的参考网址

    Python学习笔记, 下面记录网上搜到的可参考的网址: 一.关于Tkinter 1.Python3中tkinter模块使用方法详解 https://blog.csdn.net/Fighting_Bo ...

随机推荐

  1. 华为云MVP高浩:打破AI开发瓶颈,解决数据、算法、算力三大难题

    摘要:在高浩看来,大量的数字蓝领人才和AI应用开发人员构成了当前AI行业发展人才之基,这也为高校学生就业初期从事的工作指明了方向,而华为ModelArts平台在教育领域有着天然的数据.算法优势,非常适 ...

  2. Serverless 架构就不要服务器了?

    摘要:Serverless 架构不是不要服务器了,而是依托第三方云服务平台,服务端逻辑运行在无状态的计算容器中,其业务层面的状态则被开发者使用的数据库和存储资源所记录. Serverless 是什么 ...

  3. ReactJS到React-Native,架构原理概述

    React是一个纯JS的UI库,只能干HTML/CSS/JS 提供的Web服务(新的H5 API不一定支持), React-Native厉害在于它能打通JS和Native Code, 让JS能够调用丰 ...

  4. 没有苹果开发者账号能否创建ios证书-最新

    ​ 摘要: 本文介绍了在没有Mac电脑的情况下,使用appuploader工具生成iOS证书和描述文件的方法.随着大前端和H5框架的热门话题,越来越多的人希望将H5应用打包成iOS应用.苹果官方提供的 ...

  5. 火山引擎A/B测试在消费行业的案例实践

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近日,火山引擎数智平台举办了"走进火山-全链路增长:数据飞轮转动消费新生力"的活动,其中火山引 ...

  6. Intellij idea getter setter 模板设置

    通过getter setter 模板设置 在实体类中 自动添加 @XmlTransient  按 [Alt+Insert],弹出的提示中选择 Getter and Setter Xml Entity ...

  7. Java 网络编程 —— 基于 UDP 的数据报和套接字

    UDP 简介 UDP(User Datagram Protocol,用户数据报协议)是传输层的另一种协议,比 TCP 具有更快的传输速度,但是不可靠.UDP 发送的数据单元被称为 UDP 数据报,当网 ...

  8. 服务器上TIME_WAIT过多怎么处理

    正常情况下,TIME_WAIT是需要存在的 为了保证客户端发送的最后一个ACK报文能够到达服务器,因为这个ACK可能丢失,从而导致处在LAST-ACK状态的服务器收不到对FIN-ACK的确认报文,服务 ...

  9. 微信小程序 wx:for 遍历 Map集合

    如果要在微信小程序wxml中对ES6的Map集合进行wx:for遍历,如下: let map = new Map(); map.set("a",[1,2,3]); map.set( ...

  10. JSP 学习笔记 | 三、EL 表达式简述

    前文:JSP 学习笔记 | 二.JSP 脚本 & 案例实现 & 缺点分析 前文:JSP 学习笔记 | 一.JSP 原理理解 概述 EL(全称Expression Language )表 ...