DevOps流水线中调用Python脚本自动发送邮件的可行方案咨询
DevOps流水线中调用Python脚本自动发送邮件的可行方案咨询
我在Python里用win32com.client as win32包可以成功给同事的Outlook邮箱发邮件,本地的代码大概是这样的:
import win32com.client as win32 outlook = win32.Dispatch("Outlook.Application") mail = outlook.CreateItem(0) mail.To = "testemail@myemail.com" mail.Subject = "test Subject" mail.Body = "test body" mail.Send()
这段代码在本地运行完全没问题,会用我的个人邮箱地址发送邮件。
我们团队也在用DevOps流水线,可以很方便地调用仓库里的Python文件来做单元测试之类的工作,所以我想把发送邮件的流程自动化,通过流水线里的步骤来调用这个脚本。脚本执行时,准备邮件内容的前置步骤都没问题,但在建立Outlook连接的时候遇到了报错:
pywintypes.com_error: (-2147221005, 'Invalid class string', None, None) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\agent-04\_work\217\s\scripts\etl-daily-email.py", line 97, in <module> main() File "C:\agent-04\_work\217\s\scripts\etl-daily-email.py", line 92, in main EmailETLDashboard() File "C:\agent-04\_work\217\s\scripts\etl-daily-email.py", line 70, in __init__ outlook = win32.Dispatch("Outlook.Application") File "c:\agent-04\_work\217\s\.conda\lib\site-packages\win32com\client\__init__.py", line 114, in Dispatch dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch, userName, clsctx) File "c:\agent-04\_work\217\s\.conda\lib\site-packages\win32com\client\dynamic.py", line 100, in _GetGoodDispatchAndUserName return (_GetGoodDispatch(IDispatch, clsctx), userName) File "c:\agent-04\_work\217\s\.conda\lib\site-packages\win32com\client\dynamic.py", line 82, in _GetGoodDispatch IDispatch = pythoncom.CoCreateInstance( pywintypes.com_error: (-2147221005, 'Invalid class string', None, None)
一开始我就不太确定这种方式在流水线里能不能像本地一样工作,所以想请教一下:有没有办法用Python实现自动发送邮件,并且可以在DevOps流水线里调用执行?我刚接触这块,任何建议都非常感谢。
备注:内容来源于stack exchange,提问作者K.Best
相关产品推荐
相关产品推荐

