http://code.google.com/p/googleappengine/issues/detail?id=639&colspec=ID%20Type%20Status%20Priority%20Stars%20Owner%20Summary%20Log%20Componentよろしくお願いします。
2009/3/2 Ian Lewis <ianm...@gmail.com>:
> こんばんは、イアンです。
>
> 突然ですが、
> 現在、アプリからGoogle AppengineのメールAPIでメールを送信すると、どの内容を送信しても、Content-Typeのヘッダーが
> text/plain; charset="us-ascii"に設定されちゃいます。
>
> Content-Typeを指定できる機能も持っていません。
>
> なので、今はGoogle Appengineから日本語メールをちゃんと送信することができない状況です。
私が試したところ、下記のようにすると、
mail.send_mail(sender="matsuo....@gmail.com",
to="Takashi Matsuo <tma...@example.com>",
subject=u"どうもね!",
body=u"どうも!\nありがとう")
subject は iso-2022 Bエンコード
Body は iso-2022
という一般的な形式に勝手に変換してくれました。
もしかして自前で iso-2022 にすると Ian のような状況に遭遇してしまうので
しょうか... 良かったら私のコードのように単純に unicode を渡してみたら
どうなるか試してみてください。
Happy coding :-)
-- Takashi Matsuo
くまきちです。
> このときはUTF-8で渡すとiso-2022-jpになってましたが、今はユニコード
>文字列を渡すのが正当な方法なのでしょうか?
私のダウンローダーではこんな感じでやってます。
_body = u"%sさんからファイルのダウンロードのお願いです\n" % _user
_body = _body + u"URLをクリックしてダウンロードしてください\n"
_body = _body + "http://gonstrgtest.appspot.com/DownMsg?key=%s\n" % _md5
_body = _body + u"%sまで有効です\n" % unicode( _date_str, 'utf-8' )
_body = _body + u"以下本文-----\n%s" % _mail_body
_sender_address = "t.kum...@gmail.com"
_subject = "ファイルダウンロード"
mail.send_mail( _sender_address, _mail_to, _subject, _body )
これで、受信したときのヘッダーは下記のようになってます。
Content-Type: text/plain; charset=ISO-2022-JP; format=flowed; delsp=yes
Content-Transfer-Encoding: 7bit
わたしは、sender_addressが自分でないとダメってのに引っかかりました。。
やっぱりダメです。本番環境で試してみると、500エラーがでます。(エンコードエラーかな。Djangoにcatchされて隠れてるから今のところわかんない)
ローカル環境(1.1.9)でメール送りますとContent-Typeがこうなります。
Content-Type: text/plain; charset="us-ascii"
2009/3/5 mopemope <yutaka.m...@gmail.com>:
済みません。おっしゃる通り SDK だと文字化けしますね。本番環境でだけ試してました。
私の方でもちょっと調べてみます。
# 松原さんの方が解決は早そうですが...
happy coding :-)
-- matsuo