HTMLメール

2011年2月25日
PHPで送信したHTMLメール本文中の画像が見れない

PHPでHTMLメールを送信するシステムを作っていました。
構築まではできたのですが、あるときものすごくはまってしまう出来事が発生。
その問題とは

「HTMLメール中に画像のリンクを張ると画像が表示できない」

ということでした。
現象がはっきりしているのでソースを追っていけばわかるかと思いましたが全然解決せず。
PEARのMail_Mimeを使ったのでその中身をひたすら追ってもどうにも解決できません。
送信したテストメールも100通くらい。

ソースだけではどうにもならないのでインターネットメールの仕様をお勉強。
しかしメールのソースは仕様通りになっているように見えます。

今まで送られてきたHTMLメールのソースをみても特に違いはありません。
なのに自分のメール以外は普通に画像が表示されています。

解決の糸口が見つからない状態で3日位もんもんしていましたが、本日ふとしたことがきっかけであっさり解決してしまいました。
その原因は

「BASIC認証・・・・・」

でした。
メーラーによってはBASIC認証がかかっているファイルにアクセスしても、認証を聞いてこないで画像を表示しないメーラーが多いようです。
私はGmail、Thunderbird、Outlook2007で確認していましたが、Gmailのみ認証画面がでてきて認証が成功すると画像が表示されました。
単純すぎて全然気付かなかった自分が悲しい。。

学んだことは

「BASIC認証がかかっているファイルをメーラーでは開けないと思え」

です。