pywin32を使用して電子メール通知を送信するプログラムを作成しています。成功へのパラメータとメソッドを失敗が(文字列値を持つ)の変数である場合は、エラー例外pywin32メソッドで変数パラメータを受け入れる方法
def main(recipient):
try:
mailer = Dispatch("Outlook.Application")
msg = mailer.CreateItem(0)
msg.To = recipient
msg.CC = ""
msg.Subject = "EmailTest"
msg.Body = "This is most certainly a test"
msg.Send()
success(msg.Subject, recipient)
except Exception:
failure(msg.Subject, recipient)
に基づいて、それはエラーを返します:私は例外を作成していますかわからない
Traceback (most recent call last):
File "C:\pathtoprogram\thisprogram.py", line 48, in main
success(msg.Subject, recipient)
File "C:\Users\myuser\AppData\Local\Programs\Python\Python36-32\lib\site-packages\win32com\client\dynamic.py", line 516, in __getattr__
ret = self._oleobj_.Invoke(retEntry.dispid,0,invoke_type,1)
pywintypes.com_error: (-2147352567, 'Exception occurred.', (4096, 'Microsoft Outlook', 'The item has been moved or deleted.', None, 0, -2147221238), None)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
File "C:\pathtoprogram\thisprogram.py", line 50, in main
failure(msg.Subject, recipient)
File "C:\Users\myuser\AppData\Local\Programs\Python\Python36-32\lib\site-packages\win32com\client\dynamic.py", line 516, in __getattr__
ret = self._oleobj_.Invoke(retEntry.dispid,0,invoke_type,1)
pywintypes.com_error: (-2147352567, 'Exception occurred.', (4096, 'Microsoft Outlook', 'The item has been moved or deleted.', None, 0, -2147221238), None)
が、私は文字列として直接パラメータを入力すると、コードが正常に動作します。
コードの動作はうまくいきますが、メインメソッドから渡すことができる必要があるため、パラメータを変数にする必要があります。
私は同様の問題の解決策を探していましたが、この問題に関連する問題は見つかりませんでした。 msg.Subjectとmsg.Toは実際に文字列値を格納していないようですが、他の代入文のように見えます。多分私が紛失していることは明らかです。 ご協力いただければ幸いです。
私はpython 3.6とpywin32の対応するバージョンを使用しています。
'try'文の前に' recipient'とその型を 'main'の中で印刷しようとしましたか? –