2015-12-02 3 views
0

Мне нужно отправить письма через python. Оно работает. Это почти сделано. Единственная проблема в том, что мне тоже нужно форматировать. Так что либо я должен отправить электронную почту как HTML (а затем переписать шаблон с html вместо .docx) ИЛИ скопировать файл .docx с расширением У кого-нибудь есть идеи, как это сделать? Спасибо, парни.PYTHON/OUTLOOK Отправка электронной почты через PYTHON с помощью DOCX

import win32com.client as win32 
import fileinput as fi 
from docx import Document 

outlook = win32.Dispatch('outlook.application') 

path_in = 'maillist.csv' 
input_file = open(path_in, 'r') 
document = Document('template.docx') 
document_html = open('template.html', 'r') 

print(temp) 
def filecount(fname): 
     for line in fi.input(fname): 
      pass 
     return fi.lineno() 

print("Total mails %s" % (filecount(path_in))) 
count = 0 
for line in input_file: 
    if (count>16): 
     name = line.split(";")[0] 
     mail_adress = line.split(";")[1] 
     subject = line.split(";")[2] 
     print ("%s:%s:%s:" % (name, mail_adress, subject)) 
     mail = outlook.CreateItem(0) 
     mail.To = mail_adress 
     mail.Subject = subject 
     mail.body = temp.replace("XXXNAMEXXX", name) 
     mail.send 
    else: 
     count+=1 

ответ

0

Попробуйте добавить .RTFBody и/или .HTMLBody методов к объектам документа:

document = Document('template.docx').RTFBody 
    document_html = open('template.html', 'r').HTMLBody 

Кроме того, я не уверен, если это делает большую разницу, но, ради конвенционного, мне нравится для заглавной буквы первой буквы метода для объекта mailItem.

Сообщите мне, если это работает.

Смежные вопросы