0

次の python スクリプトは、sendmail にパイプできる電子メール ファイルを生成します。これを自分の Gmail アカウントに送信すると、25 行目、50 行目、51 行目が予期したものではありません。他のすべての行は期待どおりに表示されます。

import sys
print "From:test@test.com"
print "To:you@you.com"
print "Subject: test no carriage return"
print "MIME-Version: 1.0"
print "Content-Disposition: inline;"
print "Content-Type: text/html"
sys.stdout.write ("<html>" )
count = 1
while ( count < 55):
 # output without a carriage return 
 sys.stdout.write( "<tr><td>test" + str(count) + " no carriage returns!</td>")
 count = count + 1
sys.stdout.write ("</html>")

電子メールでは、行 25、50、51 に次のように期待します。

 test25 no carriage returns!
 test50 no carriage returns!
 test51 no carriage returns!

代わりに、これがレンダリングされます。

 test25 no carriage retur! ns!
 test50 no ca! rriage returns!
 test51 no carriage returns!        test52 no carriage returns!

出力をprintの代わりに使用するように変更するstdoutと、電子メールは期待どおりに表示されます。MS Outlook でもこれを試してみましたが、同じ効果が得られました。改行を使用しない場合に予期しない結果が生じる理由は何ですか?

4

1 に答える 1

0

タイプミスかどうかはわかりませんが、1 つには、行を閉じていません。次のものがありません:

</tr>

テーブルの開始タグと終了タグも同様です。

于 2013-03-12T02:22:18.870 に答える