2011-09-03 17 views
5

Naprawdę dziwne doświadczenie z tym, co zajęło mi ponad godzinę, aby dowiedzieć się. Mam skrypt cgi napisany w pythonie, który pobiera dane formularza i przesyła je dalej do wiadomości e-mail. Problem polegał na tym, że jeśli w ciągu znaków byłby dwukropek, powodowałby to, że pyton nie wysyłałby niczego do wiadomości e-mail.Python Emailing - użycie dwukropka powoduje brak wyjścia

Czy ktoś wie, dlaczego tak jest?

Na przykład:

output = "Print- Customer" 

prace, ale:

output = "Print: Customer" 

drukuje bez wyjścia.

Moja funkcja działa zasadniczo email:

server.sendmail(fromaddr, toaddrs, msg) 

gdzie msg = wyjście

prostu zastanawiasz się, czy jelita grubego jest znak specjalny produkcji strun Pythona

+1

Podaj nam kod i podaj nam przykładowe dane. – cdhowie

+0

dodane przykłady. – Kilizo

Odpowiedz

6

Colon nie jest specjalny znak w ciąg znaków Pythona, ale jest to wyjątek dla nagłówków wiadomości e-mail. Spróbuj wstawienie pustego wiersza na wyjściu:

output = "\nPrint: Customer" 
+0

Dzięki! Wiedziałem, że to był problem z e-mailem, był backslashing itp. I nie mógł go uruchomić. – jdborg

2

Pozwól mi zrobić kilka domysły:

  1. Mail jest faktycznie wysłane, ale ciało wydaje się być pusta (można kwestionować nie Powiedz to).
  2. Nie używasz wbudowanej biblioteki wysyłkowej python.
  3. Jeśli otworzysz pocztę w czytniku poczty i spojrzysz na nagłówki, pojawi się linia "print:".

Jeśli tak, to jest problem, że nie jesteś kończąc nagłówki mail z „\r\n” pary, a czytnik poczty uważa, że ​​„print:” to nagłówek poczty, podczas gdy „print -” jest częścią treść nieuformowanej wiadomości e-mail.

Jeśli dodasz "\r\n" po nagłówku, wszystko powinno być w porządku.

Powiązane problemy