Sto provando a scrivere uno script python per inviare un messaggio di posta elettronica che utilizza la formattazione html e comporta molti spazi non interrotti. Tuttavia, quando l'eseguo, alcuni dei & stringhe nbsp sono interrotte da spazi che si verificano ogni 171 caratteri, come si può vedere da questo esempio:La posta Python inserisce spazio ogni 171 caratteri
#!/usr/bin/env python
import smtplib
import socket
from email.mime.text import MIMEText
emails = ["[email protected]"]
sender = "[email protected]{0}".format(socket.gethostname())
message = "<html><head></head><body>"
for i in range(20):
message += " " * 50
message += "<br/>"
message += "</body>"
message = MIMEText(message, "html")
message["Subject"] = "Test"
message["From"] = sender
message["To"] = ", ".join(emails)
mailer = smtplib.SMTP("localhost")
mailer.sendmail(sender, emails, message.as_string())
mailer.quit()
L'esempio dovrebbe produrre un'email vuota che si compone di soli spazi , ma si finisce per guardare qualcosa di simile:
  ;
&nb sp;
& nbsp;
&nbs p;
&n bsp;
Edit: Nel caso in cui è importante, sto facendo funzionare Ubuntu 15.04 con Postfix per il client SMTP, e l'utilizzo di python2.6.
Questo era il problema, quindi è banale aggiungere un \ n dopo ogni
per far sparire questo problema. –
Ma il \ n appare nell'email (almeno come renderizzata in Outlook). Come si può inserire l'interruzione di riga senza che venga vista dal destinatario come \ n? – user3450049