前回の続き。
宣言どおり、とりあえずpostmail.pyの中身を確認、文字列本文を表しているであろうと思われる箇所を探す。
def __create_message__(self, from_address, to_address, subject, body):
これのbodyがそれに該当するっぽかったので、早速以下のコードを試す
message = MIMEText(body.encode(self.mail_encoding).replace('\n\r', '\r').replace('\n', '\r'), 'plain', self.mail_encoding)
しかし、これが上手くいかない・・・。
何故かと思い、printを仕込んで実行してみたところ、"\n"という文字列が、改行ではなく文字列として扱われていた模様。
なので、正しくは
message = MIMEText(body.encode(self.mail_encoding).replace('\\n\\r', '\r').replace('\\n', '\r'), 'plain', self.mail_encoding)
これが正解っぽい。
これで、Pythonから自分のHotMail宛てに文章を送って、変な改行が入らないようになった。
【今回の注意点・ハマリ点・助言】
・タブはスペース4つじゃないと、どうやらエラーになる模様
・必死にreplace('\n', '\r')とかやっていたが、それではダメで、内部的には"\n"という文字列扱いになっているので、正しくはreplace('\\n', '\r')という事らしい
・printすれば、一応ログデバック可能なので、活用すべし
次は、TOやCCの指定が可能かどうかだな。