Попытка автоматизировать отправку электронной почты через python. Я скопировал содержимое файла docx в переменную, записав его в содержимое почты. Но гиперссылки Word из docx не копируются, пробовал использовать пакет docxpy , который делает именно то, что нужно, но я получаю эту ошибку " TypeError: Объекты типа 'DOCReader' не могут быть преобразованы в COM VARIANT (но получение buffer () этого объекта может)". Может кто-нибудь объяснить, что такое" получение buffer () этого объекта ".
Код:
import docxpy
mail = input("Type the Message through which mail should be replied:")
contentfinal = docxpy.DOCReader("C:\\loc\\loc\\loc\\loc\\loc.docx")
contentfinal.process() # process file
hyperlinks = contentfinal.data['links']
#contentfinal = docx2txt.process("C:\\loc\\loc\\loc\\loc\\loc.docx") #Enter location where you store ur loc.docx which i have sent you in mail
outlook = Dispatch("Outlook.Application").GetNamespace("MAPI")
root_folder = outlook.GetDefaultFolder(6)
messages = root_folder.Items
message = messages.GetLast()
messages.Sort("[ReceivedTime]", True)
for message in messages :
if message.Subject == mail :
reply = message.Reply()
temp = message.body
print("Mail Found...")
found = 1
break
if found == 0:
print ("Not found")
sys.exit()
servername = input("Enter CE which is not under our scope :")
reply.Subject = mail
reply.BodyFormat = 2
#contentfinal = contentfinal[:24] + servername + contentfinal[24:]
reply.Body = contentfinal
reply.Body = reply.Body + temp
reply.To = message.SenderName
reply.Cc = "loc@loc.com"
s = input("Want to attach something (y/n):")
if s == "y" or s == "Y":
att = input("Enter attachment:")
attachment1 = "C:\\loc\\loc\\loc\\loc\\" + att #Give the location where you store your screenshots
reply.Attachments.Add(Source=attachment1)
reply.display()