メールの最後の 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 を使用しています。Outlook は、平文メールのどこに改行を入れるかを私よりもよく知っていると考えています...
どんな洞察も高く評価されます。
編集:これは整形式の HTML ではないことにも言及する必要があります。基本的に、新しい行を次のように置き換えているだけです
<br/>
それが違いを生むかどうかはわかりません。ブレーキ タグを除けば、HTML タグに少しでも似ているものは何もないため、問題は予期しないタグが書式設定を台無しにすることではありません。