0

色分けされた出力を含む python (2.6) HTML メールを送信しようとしています。私のスクリプトは、(str.format を使用して) テーブルのようにフォーマットする出力文字列を作成します。画面に問題なく出力されます:

abcd 24222 xyz A
abcd 24222 xyz B
abcd 24222 xyz A
abcd 24222 xyz D

しかし、私はそれを電子メールメッセージとして送信する必要もあり、A (たとえば緑色)、B (赤色) などを含める必要があります。どうすればよいですか?

私が試したのは、A、Bなどの前後にFONT COLOR = #somecolor & /FONTタグを付けることです。そして、文字列の適切な部分にtable、tr & tdタグを追加するメソッド/モジュールを書いたので、メッセージが電子メールに HTML テーブルを必要とすること。しかし、このアプローチには問題があります:
1) これは常に適切に機能するとは限りません。電子メール (まったく同じスクリプトを実行して取得) は異なり、多くの場合、メンバーの位置合わせが正しくなく、不可解な tr または td が表示されます (毎回異なる場所に表示されます)。私のhtmlテーブルの作成は正しいのに

どんな助けでも大歓迎です。

4

2 に答える 2

0

必要なツールボックスはemail.mimeと呼ばれ ます。おそらく次のようなものが必要です。

from email.mime.multipart import MIMEMultipart               
from email.mime.text import MIMEText                         

msg = MIMEMultipart()                                        
msg['Subject'] = u"A subject."                               
msg['From'] = "sender@example.org"                           
msg['To'] = "receiver@example.com"                           
body = MIMEText(MAIL_TEMPLATE.format(**mail_content),
                _subtype='html',                             
                _charset='UTF-8')                            
msg.attach(body) 

MAIL_TEMPLATE は HTML テンプレートであり、mail_content は、HTML に存在するキーを挿入する値に関連付ける辞書です。

于 2012-07-31T16:52:01.063 に答える
0

わかった。誰かが同じ問題に遭遇した場合に備えて、彼女は私のために働いたものです. HTML テーブルのすべてのタグの後にキャリッジ リターン (つまり \n) を入力する必要がありました。そして、すべてがうまくいきました。

PS: これが役立つかどうかの 1 つの手がかりは、HTML の 1 つの大きな文字列を作成していることです。

于 2012-08-08T16:23:32.690 に答える