python smtplib和outlook2010的HTML格式问题

2024-10-03 11:26:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用生成html文件元素树.elementtree.dump在元素上。这些文件在所有浏览器中看起来都不错,文件中的底层代码看起来也不错(没有未闭合的方括号或任何东西)。在

当我通过smtplib向outlook2010发送电子邮件时,我看到了奇怪的格式问题。这些问题是100%可重复的,所以这个问题是合乎逻辑的。下面是一个例子:

<table b="" order="1">

这是我自己发的一封HTML电子邮件的源代码。它正确地写为:

^{pr2}$

源代码内。在

如果我在Outlook中使用原始HTML作为源代码编写HTML电子邮件,它的格式是正确的。(新电子邮件附加html文件->作为文本插入)

问题是Outlook还是Python?我用来读取html文件并发送的函数如下。在

def email_Report(mailOptions):
  reportName = time.strftime("%Y%m%d.%H%M") + ".html"
  ElementTree(mailOptions['report']).write("/home/%s/%s" %(mailOptions['username'],reportName))
  #Set sender and receiver to the user building the report.
  mailaddr = '%s@acme.com' %(mailOptions['username'])
  #Access the report file. Added binary in case we ever use code on Windows
  filename = "/home/%s/%s" % (mailOptions['username'], reportName)
  open_file = open(filename, 'rb')
  emsg = MIMEText(open_file.read(), 'html')
  open_file.close()
  emsg['Subject'] = "Report for %s generated by %s %s" % (mailOptions['zone'], mailOptions['username'], time.strftime("%d%m%Y-%H%M"))
  emsg['To'] = mailaddr
  emsg['From'] = mailaddr
  #Hostname can be a parameter to SMTP method if localhost isn't listening
  sc = smtplib.SMTP()
  sc.connect()
  sc.sendmail(mailaddr, mailaddr, emsg.as_string())
  sc.close()
  return 

HTML非常简单。没有CSS,没有title或head标记等。只有html->;body->;table->;tr->;th->;(newrow)—>;td->;td等等。我是否可以忽略编码/转义之类的内容?我必须使用mime multipart吗?我使用的是python2.4.3,不能使用任何没有现货的模块。在


Tags: 文件gtreport源代码电子邮件htmlusernameopen