43550


Windows10環境のタスクスケジューラよりPythonを起動し、win32comを利用してOutlookからメールを送信しようとしていたのですが、以下のエラーが発生してしまいメールが送信できずに困っております。

どなたか回避策等ご存知でしたらご教示願えますでしょうか。  
※ VSCode上からの実行では問題なく送信できています。。。

[code]

    2018-04-25 22:06:12,455 - logExample - ERROR - Error do something: (-2146959355, 'サーバーの実行に失敗しました', None, None)
    Traceback (most recent call last):
      File "C:\Program Files\Python\Python3.6.5\lib\site-packages\win32com\client\dynamic.py", line 89, in _GetGoodDispatch
        IDispatch = pythoncom.connect(IDispatch)
    pywintypes.com_error: (-2147221021, '操作を利用できません', None, None)
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "C:\projects\Pythons\operation_tools\mainExecute.py", line 263, in <module> 
        application = win32com.client.Dispatch('Outlook.Application')
      File "C:\Program Files\Python\Python3.6.5\lib\site-packages\win32com\client\__init__.py", line 95, in Dispatch
        dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx)
      File "C:\Program Files\Python\Python3.6.5\lib\site-packages\win32com\client\dynamic.py", line 114, in _GetGoodDispatchAndUserName
        return (_GetGoodDispatch(IDispatch, clsctx), userName)
      File "C:\Program Files\Python\Python3.6.5\lib\site-packages\win32com\client\dynamic.py", line 91, in _GetGoodDispatch
        IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch)
    pywintypes.com_error: (-2146959355, 'サーバーの実行に失敗しました', None, None)
    
[/code]


CC BY-SA 3.0
2018-04-25T13:14:41.367
43549
2018-04-30T04:51:59.500
2018-04-30T04:51:59.500
3060
28311
question
python windows python3 exception
Pythonをタスクスケジューラで起動したときのエラーについて


[Office のサーバーサイド オートメーションについて](https://support.microsoft.com/ja-
jp/help/257757/considerations-for-server-side-automation-of-office)にて

> マイクロソフトは、現在のところ、無人の非対話型クライアント アプリケーションまたはコンポーネント (ASP、ASP.NET、DCOM、および NT
> サービスを含む) からの Microsoft Office
> アプリケーションのオートメーションに関して、推奨もサポートも行っていません。それは、このような環境で Office を実行した場合、Office
> で不安定な動作やデッドロックが発生する可能性があるためです。

と説明されています。タスクスケジューラではOutlookを実行できない前提で検討されることをお勧めします。


CC BY-SA 3.0
2018-04-25T13:33:09.053
43550
2018-04-25T13:33:09.053
4236
43549
answer


サーバー環境でPythonから Excel, Word, PowerPoint を利用したい場合は、openpyxl, pydoc, pyppt
等のライブラリーを使って直接ファイルを操作するようにします。また、メールクライアントであれば、Pythonの標準ライブラリーにある`smtplib`と`email`を使って簡単に作ることが可能です。これでかなりのことは対応できると思います。

それで対応ができないような場合は、Google の Gmail, Sheets, Documents, Slides,
Calenderの方を使うようにします。こちらは、Microsoft Officeと違ってAPIがあるのでサーバー環境からでも利用可能です。


CC BY-SA 3.0
2018-04-26T09:37:21.037
43570
2018-04-26T09:37:21.037
15171
43549
answer