2017-01-06 8 views
0

私はWindows 10環境でPython 2.7、win32comパッケージ219がインストールされています。ウィンドウが更新された後、このエラーが発生しました。AttributeError:olEmbeddeditem

Excelでマクロを実行するコードを実行し、電子メールに添付して送信され、送信される円グラフを生成しました。 このプログラムは正常に動作していましたが、いくつかのウィンドウを更新した後、同じものがAttributeErrorを与えています:olEmbeddeditem、win32com.clientとその定数をインポートしました。

埋め込みイメージを電子メール本文に入れたいので、olEmbeddeditemをolByValueなどに置き換えることは役に立ちませんが、私も試みましたが、これもうまくいきませんでした。

私はまた、pythonのwin32comパッケージの再インストールを行っていますが、問題は解決しません。

「win32com.clientのインポート定数から」という以前の作業コードは含まれていませんでしたが、動作していなかったのでこの行を追加することを考えましたが、これも役に立たなかった。

ご協力いただければ幸いです。

import sys 
import os 
import win32com.client 
import codecs 
from win32com.client import constants 

sys.stdout = codecs.getwriter("iso-8859-1")(sys.stdout, 'xmlcharrefreplace') 
outlook =  win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI") 
inbox = outlook.GetDefaultFolder(6) 
all_inbox = inbox.Items 
folders = inbox.Folders 

olMailItem = 0x0 
obj = win32com.client.Dispatch("Outlook.Application") 
xlApp = win32com.client.Dispatch("Excel.Application") 
ExcelWorkBook =  xlApp.Workbooks.Open('C:\Users\xxx\Desktop\data.xlsm') 
xlSheet1 = ExcelWorkBook.Sheets("Sheet1") 
xlApp.Application.Run("data.xlsm!Macro1") 
chart1 = xlSheet1.ChartObjects(1) 
chart1.Chart.Export("C:\Users\xxx\Desktop\photo.gif", "GIF", False) 
xlApp.Workbooks(1).Close(SaveChanges=0) 
xlApp.Application.Quit() 
newMail = obj.CreateItem(olMailItem) 
newMail.Subject = "Presentation of Automation" 
attachment = newMail.Attachments.Add("C:\Users\xxx\Desktop\photo.gif", win32com.client.constants.olEmbeddeditem, 0, "photo") 
imageCid = "photo.gif" 
attachment.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001E", imageCid) 
newMail.HTMLBody = "<body>Dear Sir,Madam,<br>Please find the requested details.<br><br><p><img src=\"cid:{0}\"></body>".format(imageCid) 
newMail.To = x 
attachment1 = "C:\Users\xxx\Desktop\photo.gif" 
newMail.Attachments.Add(attachment1) 
newMail.Send() 
os.remove("C:\Users\xxx\Desktop\photo.gif") 
msg.UnRead = False 
+0

行番号(あなたのコードに明示する必要があります) – Schollii

+0

@Schollii、私が得た例外を見つけてください。 ' トレースバック(最新の呼び出しの最後): ファイル "C:\ Users \ユーザーxxxは\デスクトップ\のabc.py"。 のx = msg.Sender.GetExchangeUser()で、ライン21、PrimarySmtpAddress はAttributeError:' NoneType 'オブジェクトに属性がありません' PrimarySmtpAddress ' ' – MSY

答えて

0

疑われるとして、問題の根本的な原因は、Windowsのアップデートではなかった、しかし、それはエラーが原因を与えていたInboxのグループのメールでした。グループメールを削除したり、Inbox以外のフォルダに移動したりすると、問題は解決しました。そのような電子メールがトレースバックに終わらないことを保証するために、それがエラーを出していた理由と今後の進め方についてはまだ分かりません。

関連する問題