2015-12-02 216 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對象。

讓我知道這是否有效。