2011-09-03 3 views
5

Experiencia realmente extraña con esto que me llevó más de una hora averiguarlo. Tengo un script cgi escrito en python que toma los datos de la forma y lo reenvía a un correo electrónico, el problema era que si hubiera dos puntos en la cadena, Python no daría salida al correo electrónico.Correo electrónico en Python: el uso de dos puntos no produce salida

¿Alguien sabe por qué es esto?

Por ejemplo:

output = "Print- Customer" 

obras, sin embargo:

output = "Print: Customer" 

impresiones sin salida.

Mi función de correo electrónico funciona esencialmente:

server.sendmail(fromaddr, toaddrs, msg) 

donde msg = salida

Sólo me preguntaba si el colon es un carácter especial en la salida de cadena pitón

+1

Danos el código y nos dan datos de muestra. – cdhowie

+0

ejemplos agregados. – Kilizo

Respuesta

6

colon no es un carácter especial en salida de cadena de pitón, pero es especial para los encabezados de correo electrónico. Intente insertar una línea en blanco en la salida:

output = "\nPrint: Customer" 
+0

Gracias! Sabía que era un problema de correo electrónico, estaba retrocediendo, etc. y no podía hacer que funcionara. – jdborg

2

me permite hacer unas cuantas conjeturas:

  1. realidad se envía el correo, pero el cuerpo parece estar vacío (Cuestionas no di esto).
  2. No está utilizando la biblioteca de correo de python incorporada.
  3. Si abre el correo en su lector de correo y mira los encabezados, la línea "print:" estará presente.

Si es así, el problema es que no se está terminando las cabeceras de los mensajes con un "\r\n" par, y el lector electrónico piensa que "print:" es una cabecera de correo, mientras que "print -" es parte de la cuerpo de un correo electrónico mal formado.

Si agrega el "\r\n" después de sus encabezados, todo debería estar bien.

Cuestiones relacionadas