iPhoneデフォルトのビューポート

HTTPリクエストに対して画像を返すだけの簡単なサービスがあり、iPhone で見ると画像が小さく表示されてしまう、といわれて調査。 確認してみると、返す画像サイズは問題ないはずなのに、スクリーン上では左上に小さく表示されており、タッチすると正常なサイズで表示される。 調べてみると、iPhone 上 Safari のデフォルトビューポートの仕様が原因だと判明。 そのものずばりの現象が、公式サイトで説明されていた。 Safari Reference Library : Safari on iPhone OS Viewport これによると、デフォルトでは横幅を 980 ピクセルで表示させる。 そのため、画像の横幅が490ピクセルだと、画面の半分のサイズで表示されてしまう。 文章としては、次のようにコンパクトにまとめられている。 For Safari on iPhone OS, the viewport is the area that determines how content is laid out and where text wraps on the webpage. The viewport can be larger or smaller than theContinue reading “iPhoneデフォルトのビューポート”

iPhoneからmultipart/alternativeなメールが届く

iPhone からメールを送信する際 本文がひらがななど非ASCII文字を含む場合 本文がASCIIのみで構成される場合 でMIMEを切り替えるようだ。 前者の場合、「text/plain」のみで送信する。 後者の場合、「text/plain」と「text/html」のマルチパート(multipart/alternative )メールを送信するようだ。 自分が担当しているシステムのメール受け取り部では、「text/plain」でしかメールが届かないことを想定し メールヘッダー 空行 本文 のフォーマット決め打ちでプログラムされており、最初に見つかった空行の次の1行をチェックするようになっていた。 しかし、multipart で届くと メールヘッダー 空行 空行 バウンダリー メールヘッダー(text/plain) 本文 空行 バウンダリー メールヘッダー(text/html) 本文 というようになり、本文1行目を取得するつもりが、空行を取得していた。 そのため、メールに含まれていた本文は一切取得できず、入力不備としてエラー処理していた。 本来であれば、メールパーサーライブラリを利用して汎用性のある形で本文を読み込めばいいのだろうけど、保守作業時間と緊急対応ということを考慮して、こそくな手段で回避。後任の人が困るかもしれないけど、、、 メールをトリガーにして動いているシステムで iphone をご利用のお客さまから苦情を頂き判明。

iphoneからのメールのスパムチェック

担当しているシステムのメール受信処理で iphoneユーザのお客様からメールが処理されないと障害報告があったので調査。 ■メール処理の流れ メールはPostfixで受けて、Perlプログラムをキック。 Perl内では次の環境変数をみて、スパムチェックを行っている。 SENDER (例:***@i.softbank.jp) CLIENT_HELO(例:***.i.softbank.jp) CLIENT_ADDRESS CLIENT_HOSTNAME ■iPhoneメールの問題点 今回 iPhone で問題だったのは次の2点 CLIENT_ADDRESS の逆引き結果が「***.tss.panda-world.ne.jp」で「i.softbank.jp」と全くことなる CLIENT_HELO が正引きできない(副作用として、環境変数のCLIENT_HOSTNAMEは”unknown”」で渡ってくる。) 結局、何年も前に作られたスパムチェックルーチンを、緩めて対応することに。 Softbank は disney ドメインといい、J-PHONE、Vodafoneと変遷してきたことも含めて、あまりいい印象が持てない。