У меня странная проблема, когда последние 10-20 символов моего электронного письма усекаются.
Код, который отправляет электронное письмо, выглядит следующим образом:
#Get the runtime arguments.
subject = args[0]
content = str(args[1]).replace("\\n","<br/>") #Python automatically escapes the backslash in runtime arguments, so "\n" turns into "\\n".
#Create the email message.
msg = MIMEText(content, 'html')
msg['From']=sender
msg['To']=",".join(recipients)
msg['Subject']=subject
print "Sending email with subject \""+subject+"\" to: " + ",".join(recipients)
print "Content: \n" + content;
print "\n\n"
print "msg.as_string(): \n" + msg.as_string()
#Set the SMPTP server, and send the email.
s = smtplib.SMTP(server)
s.sendmail(sender,recipients,msg.as_string())
s.quit()
Как вы можете видеть в коде, я вывожу на экран как содержимое, так и финальное сообщение, и оба они печатаются правильно. Но когда электронное письмо получено получателем, оно усекается. Я не уверен на 100%, усекается ли он на определенное количество символов или после определенного количества символов, но я подозреваю, что это позже.
Как ни странно, электронные письма отправляются нормально, если они отправляются в текстовом формате, а не в формате HTML. Но, к сожалению, большинство получателей используют Outlook, который думает, что лучше меня знает, куда вставлять новые строки в письмах с открытым текстом...
Любое понимание будет оценено.
Изменить: я также должен упомянуть, что это неправильный HTML. По сути, я просто заменяю новые строки на
<br/>
Я не уверен, что это изменит ситуацию. Помимо тормозных тегов, нет ничего, что хотя бы отдаленно напоминало HTML-тег, поэтому проблема не в том, что неожиданный тег испортил форматирование.