Это мой первый вопрос, поэтому я надеюсь, что все в порядке.
Я пытаюсь отправить электронное письмо с вложением с помощью Python, используя win32com с Outlook 2010. И он отправляет электронное письмо. Но это не отправка вложения. Я основал свой код на примере, приведенном здесь.
def email_tamplate(*args):
Format = { 'UNSPECIFIED' : 0, 'PLAIN' : 1, 'HTML' : 2, 'RTF' : 3}
profile = "Outlook"
#session = win32com.client.Dispatch("Mapi.Session")
outlook = win32com.client.Dispatch("Outlook.Application")
#session.Logon(profile)
mainMsg = outlook.CreateItem(0)
mainMsg.To = str(login_entry.get())+"@amazon.com"
mainMsg.Subject = "Sauron personal report request between "+str(start_date.get())+" and "+str(end_date.get())
mainMsg.BodyFormat = Format['RTF']
mainMsg.HTMLBody = body
try:
attachment1= ('C:\\Users\\' + str(login_entry.get()) + '\\My Documents\\status_email.csv')
mainMsg.Attachments.Add(attachment1)
except:
pass
mainMsg.Send()
Вот сообщение об ошибке, которое я получаю, когда не использую Try / except:
Исключение в обратном вызове Tkinter Traceback (последний вызов последним): файл «C: \ Python33 \ lib \ tkinter__init __. Py», строка 1475, в вызове return self.func (* args) Файл «C: \ Users \ alvaros \ Dev \ Sauron \ v2 \ Sauron v2.2.1.py ", строка 478, в файле status_email email_tamplate ()" C: \ Users \ alvaros \ Dev \ Sauron \ v2 \ Sauron v2.2.1.py ", строка 424, в email_tamplate mainMsg.Attachments.Add (attachment1) Файл ">", строка 3, в Добавить pywintypes.com_error: (-2147352567, 'Произошло исключение.', (4096, 'Microsoft Outlook', "Вы не иметь соответствующее разрешение на выполнение этой операции. ", Нет, 0, -2147024891), Нет)
Все работает, кроме того, что вложение не отправляется. Путь к вложению правильный, и файл есть.
Спасибо.
print "attachment exists:", os.path.exists(attachment1)
, выводится ли она True? Что, если вы попытаетесь прикрепить простой текстовый файл? - person Oliver   schedule 15.07.2014