▼ 2007/11/26(月) メール投稿エラーの原因(adiary1.44とauW31CA)
前に、auW31CAから、添付ファイル付きでメールを送った場合にエラーとなる現象があると書きました。
原因がわかりました。
この端末が出すmultipartが、ちょっとお行儀が悪かったのですね(もっともRFC的にはいいらしいのだが)
auW31CAがはき出すメールヘッダーの例:
3についてはまあ対策しなくてもなんとかなる。
1と2については対策しないとW31CAからは画像投稿ができない。
いつか作者様に修正はお願いするとして応急処置の方法。
これで、mUltipaRt でも BoundAry でも大丈夫。
もうひとつ
Content-typeヘッダのname及びfilenameフィールドの正規表現を
[\s;]としましょう。
応急処置ですが、まあとりあえず。
原因がわかりました。
この端末が出すmultipartが、ちょっとお行儀が悪かったのですね(もっともRFC的にはいいらしいのだが)
auW31CAがはき出すメールヘッダーの例:
Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="-----=_NextPart_102934_116513_130092" -------=_NextPart_102934_116513_130092 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit パスワード 本文 -------=_NextPart_102934_116513_130092 Content-Type: image/jpeg;name="071122_2220~0001.jpg" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="071122_2220~0001.jpg" /9j/4QHtRXhpZgAATU0AKgAAAAgACgEOAAIAAAARAAAAhgEPAAIAAAAIAAAAmAEQAAIAAAAGAAAA あとはデータ■■このヘッダーとadiary1.44の相性が悪いところ
- Multipart ← 最初が大文字
- image/jpeg;name="071122_2220~0001.jpg" ← nameの前に空白がない
- charset=ISO-2022-JP ← ダブルクオーテーション"がない。大文字である。
3についてはまあ対策しなくてもなんとかなる。
1と2については対策しないとW31CAからは画像投稿ができない。
いつか作者様に修正はお願いするとして応急処置の方法。
/lib/Satsuki/Base/Mail.pm
の本文の解析でmultipartを解析しているところの直前に
$mail->{content_type} =~ tr/A-Z/a-z/;
を書き足して、すべて小文字で比較しましょう。(lcでもいいかもかも)これで、mUltipaRt でも BoundAry でも大丈夫。
もうひとつ
Content-typeヘッダのname及びfilenameフィールドの正規表現を
[\s;]としましょう。
if ($encode eq 'base64' && ($type =~ /[\s;]filename="(.+?)"/ || $type =~ /[\s;]name="(.+?)"/))こんな感じね。
応急処置ですが、まあとりあえず。
▼ コメント(0件)
- TB-URL http://www.cpa-lab.com/shougakusei/2008/spok/036/tb/
▼ 2007/11/26(月) adiaryで携帯adsense(アドセンス)を使ってみる。
環境
(私はUTFでサイト作っているのでUTF,XHTMLでコード指定した。)
そして、
# HTML生成
の変数$outに代入する前に
さらに、携帯電話用のスケルトンに変数の置き換えを書いておかねばならない
携帯googleさんの
モバイル広告のターゲット方法について教えてください。
はどうしておきましょうかね。
(参考)
skeltonのカスタマイズ
モバイル向け Adsense を Perl で使うにはバッククォートが便利
これも便利でした。
Openwave® SDK 6.2K-au携帯ブラウザエミュレータ
adiary version 1.44 UTF-8版まずは、
\lib\Satsuki\に
adsense.pl(ファイル名はなんでもよい)として、adsense(アドセンス)のコードを改変せずにそのままアップロード。
(私はUTFでサイト作っているのでUTF,XHTMLでコード指定した。)
そして、
\lib\Satsuki\diary.pmの中の
# ●HTMLの生成と出力の後の
# HTML生成
の変数$outに代入する前に
##spok
if ($self->{phone_mode} ) {
$ROBJ->{adsense}= `perl lib/Satsuki/adsense.pl`;
}
##spok
と、入れておく。さらに、携帯電話用のスケルトンに変数の置き換えを書いておかねばならない
/theme/_phone/_skelton/_frame.htmlのbodyタグのすぐ次の行に
<@ifexec(! Auth.ok, begin)> <@adsense> <$end>といれておく。
携帯googleさんの
モバイル広告のターゲット方法について教えてください。
はどうしておきましょうかね。
(参考)
skeltonのカスタマイズ
モバイル向け Adsense を Perl で使うにはバッククォートが便利
これも便利でした。
Openwave® SDK 6.2K-au携帯ブラウザエミュレータ
- TB-URL http://www.cpa-lab.com/shougakusei/2008/spok/019/tb/