У меня есть скрипт, который работал в Outlook 2010 целую вечность.Наша организация только что обновила мой компьютер до Office 365 (Outlook 2016), и сценарий больше не присоединяет файл pdf.
for arg in sys.argv:
baseDir = arg
arcpy.AddMessage("File = " + baseDir)
csvFile = (baseDir + "EmailAnalysis.csv")
# Get Access exported file
arcpy.AddMessage ("csv = " + csvFile)
csvRead = csv.reader(open(csvFile, "r"))
for row in csvRead:
recipientName, txtRecipient, projectName, cntyList, requestType, DSA_Loc = row
# Ensure Access data format ready to generate list
requestType = split_line(requestType)
# Create the body of the email
if "Analysis" in requestType:
txtSubject = "Data Analysis Request Response - " + projectName
txtBody = "Dear " + recipientName + ":<br /><br />Here is the response to your request for near " + projectName + ". Please let me know if you have any questions or require additional information."
txtAttach = ("\"" + baseDir + "Results\\" + projectName + " - Analysis Response.pdf\"")
else:
arcpy.AddMessage("exiting script....")
sys.exit()
# Call up Outlook email with headings and body of text
outlook = EnsureDispatch("Outlook.Application")
newMail = outlook.CreateItem(constants.olMailItem)
newMail.Subject = txtSubject
newMail.GetInspector
index = newMail.HTMLBody.find('>', newMail.HTMLBody.find('<body'))
newMail.HTMLBody = newMail.HTMLBody[:index + 1] + txtBody + newMail.HTMLBody[index + 1:]
newMail.To = txtRecipient
attachment1 = txtAttach
arcpy.AddMessage ("Atttachment 1 = " + attachment1)
newMail.Attachments.Add(attachment1)
grp1 = newMail.Recipients.Add("Eastern Region Data Request")
grp1.Type = constants.olCC
newMail.Recipients.ResolveAll()
newMail.Display(False)
В этой строке выводится сообщение «newMail.Attachments.Add (attachment1)» * * 1004.*
Я получаю следующее сообщение об ошибке:
File = V:\Test\
csv = V:\Test\EmailAnalysis.csv
Atttachment 1 = "V:\Test\Results\Test Results - Analysis Response.pdf"
Traceback (most recent call last):
File "V:\Test\Template\Scripts\EmailTest.py", line 82, in <module>
newMail.Attachments.Add(attachment1)
File "C:\Python27\ArcGIS10.5\lib\site-packages\win32com\gen_py\00062FFF-0000-0000-C000-000000000046x0x9x6\Attachments.py", line 35, in Add
, Type, Position, DisplayName)
com_error: (-2147352567, 'Exception occurred.', (4096, u'Microsoft Outlook', u'File name or directory name is not valid.', None, 0, -2147024773), None)
Имя файла / путь указаны правильно.Я искал в Интернете в течение нескольких дней и не могу найти причину этого сбоя.Есть ли в Outlook параметр, который мне нужно изменить, о котором я не знаю?(Кстати, если я закомментирую вышеприведенную строку, скрипт будет работать так, как он должен.)
Я просто ввел имя прямого пути вместо переменной, и это сработало.Идеи, почему «newMail.Attachments.Add (attachment1)» не работает, но newMail.Attachments.Add («V: \ Test \ Results \ Test Results - Analysis Response.pdf») работает?