ようこそゲストさん

CPA-LAB管理人用

2007/11/26(月) メール投稿エラーの原因(adiary1.44とauW31CA)

はてなブックマークの情報 はてなブックマークに登録 はてなブックマーク数 2007/11/26 25:59 adiaryスポック
前に、auW31CAから、添付ファイル付きでメールを送った場合にエラーとなる現象があると書きました。
原因がわかりました。
この端末が出す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の相性が悪いところ
  1. Multipart ← 最初が大文字
  2. image/jpeg;name="071122_2220~0001.jpg" ← nameの前に空白がない
  3. 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="(.+?)"/))
こんな感じね。

応急処置ですが、まあとりあえず。

#  非公開コメント   
  • TB-URL  http://www.cpa-lab.com/shougakusei/2008/spok/036/tb/

2007/11/26(月) adiaryで携帯adsense(アドセンス)を使ってみる。

はてなブックマークの情報 はてなブックマークに登録 はてなブックマーク数 2007/11/26 21:47 adiaryスポック
環境
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/