Exchange服务调用实现邮件自动发送
前言
我上篇搞了个自动抓取sap日志表的操作,然后通过webhook发给企业微信。
SAP霸道的内置函数RFC_READ_TABLE | Haha not only a lot
但是实际有些问题:
- 脚本执行的环境是我自己电脑,那我电脑关机的情况下,作业就无法执行了。
- 使用外部server,无法连接到公司的sap系统。
- 使用内部server,无法访问internet,无法触发消息发送。
因为作业是抓取当天的日志,所以如果差了一天,可能就会漏掉监控……
实际也确实发生过了……
今天偶尔想了下,是否有邮件发送的方式,一搜,还真的有。
使用内部邮箱的话,将监控信息发给自己。同时也因为都是公司内部应用,可以将脚本放在内部server上,这样上面的问题就都解决了。
非常nice~🤪🤪🤪🤪🤪🤪
技术实现
使用exchangelib
三方库。
这个库整体用起来非常的简单。但是安装的时候会发现它需要安装很多依赖库。同时不同的功能需要import不同的模块进来。
整体不难用。
大致发送邮件的代码如下,即可:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| from exchangelib import Credentials, Account, Message, Mailbox
# 邮件标题 subject = "测试" # 邮件正文 text = """ 测试! """ def send(): user = params_connection['user'] passwd = params_connection['passwd'] from_addr = params_connection['from']
credentials = Credentials(user, passwd) account = Account(from_addr, credentials=credentials, autodiscover=True)
m = Message( account = account, # 之前申明的账户 subject = subject, body = text, to_recipients = [ Mailbox(email_address = '802@macn'), # Mailbox(email_address = '695@ma.cn'), ], cc_recipients=['carl@c', 'denic@e'], bcc_recipients=[Mailbox(email_address='erik@m'),] )
m.send()
|
我干了点啥
抓取的东西还是之前的东西,
做了一定程度调整,然后就可以用邮件发送了。

这样每天定时发送到自己邮箱,就可以了。
Author:
Konta
Discuss:
吐槽及留言
Permalink:
http://tech.hahaalot.com/2022/12/30/Exchange服务调用实现邮件自动发送/
License:
Copyright (c) 2020 CC-BY-NC-4.0 LICENSE
Slogan:
YOLO!