我必须通过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
答案 0 :(得分:0)
尝试将.RTFBody
和/或.HTMLBody
方法添加到文档对象中:
document = Document('template.docx').RTFBody
document_html = open('template.html', 'r').HTMLBody
另外,我不确定它是否有很大的不同,但是,出于惯例,我喜欢将mailItem
对象的方法的第一个字母大写。
如果有效,请告诉我。