Как отправить электронное письмо с помощью Python, который запускается через конвейер DevOpsPython

Программы на Python
Ответить
Anonymous
 Как отправить электронное письмо с помощью Python, который запускается через конвейер DevOps

Сообщение Anonymous »

Используя пакет win32com.client как пакет win32 в Python, я смог успешно отправлять электронные письма в почтовые ящики моих коллег в 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 файлы в нашем репозитории для облегчения модульного тестирования и т. д., поэтому я надеялся автоматизировать это письмо с помощью 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 
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? Это довольно новое дело, поэтому любые предложения будут приняты с благодарностью.

Подробнее здесь: https://stackoverflow.com/questions/792 ... s-pipeline
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»