Python电子邮件 - 使用冒号不会导致输出

时间:2011-09-03 18:01:59

标签: python email

真的奇怪的经历,花了我一个多小时才搞清楚。我有一个用python编写的cgi脚本,它接受表单数据并将其转发到电子邮件,问题是,如果字符串中有冒号,则会导致python不向电子邮件输出任何内容。

有谁知道这是为什么?

例如:

output = "Print- Customer"

虽然有效:

output = "Print: Customer"

不打印输出。

我的电子邮件功能基本上起作用:

server.sendmail(fromaddr, toaddrs, msg)

其中msg =输出

只是想知道冒号是否是python字符串输出中的特殊字符

2 个答案:

答案 0 :(得分:6)

冒号不是python字符串输出中的特殊字符,但它对电子邮件标题是特殊的。尝试在输出中插入一个空行:

output = "\nPrint: Customer"

答案 1 :(得分:2)

请允许我做一些猜测:

  1. 邮件实际上是发送的,但是正文似乎是空的(你的问题不说这个。)
  2. 您没有使用内置的python邮件库。
  3. 如果您在邮件阅读器中打开邮件,并查看标题,则会出现“print:”行。
  4. 如果是这样,问题是您没有使用“\r\n”对结束邮件标题,并且邮件阅读器认为“print:”是邮件标题,而“{ {1}}“是错误形成的电子邮件正文的一部分。

    如果您在标题后面添加“print -”,那么一切都应该没问题。