PYTHON / OUTLOOK使用DOCX通过PYTHON发送电子邮件

时间:2015-12-02 11:25:42

标签: python email outlook

我必须通过python发送邮件。有用。它差不多完成了。唯一的问题是我必须保持格式化。所以要么我必须以HTML格式发送电子邮件(然后使用html而不是.docx重写模板)或者使用扩展名复制.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

1 个答案:

答案 0 :(得分:0)

尝试将.RTFBody和/或.HTMLBody方法添加到文档对象中:

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

另外,我不确定它是否有很大的不同,但是,出于惯例,我喜欢将mailItem对象的方法的第一个字母大写。

如果有效,请告诉我。