電子メールの最後の10〜20文字が切り捨てられているという奇妙な問題が発生しています。次のようにsmtplib.SMTP.sendmailを使用してHTMLメッセージを送信すると電子メールが切り捨てられる
電子メールを送信するコードは次のとおりです。
#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タグにもリモートで似ているものがないので、予期しないタグがフォーマットを狂わせてしまうという問題はありません。
ありがとうございました。今、私は "\\ n"を "\ n
"に置き換え、正しく動作します。 – Morglor
長い文字列を連結しながら\ n "newline"演算子を追加しました。電子メールの切り捨て問題を解決しました。 –