【お願い】メール投稿のテスト
こんにちはロガー様!
新しく立てたメールサーバに投稿スクリプトを仕込みました。予想通り、そんなに難しい作業ではなかったです。
しかし、問題もあるようです。
ですので、投稿テストをお願いしたいのです。
【テストの方法】
○○@post.timelog.jp (○○はユーザーによって異なるランダムな文字や数字列)
のpostの部分をptstに変え、
○○@ptst.timelog.jp
にすると、新しいメールサーバを経由して投稿されます。postのままですと、今までのメールサーバ(サンロフト様のサーバ)を経由します。
※グループ投稿はまだ対応していません。タイムライン投稿でお願いします!
【お願い】
テストにご参加いただけるロガー様には、postとptstの両方に別々の内容のメールで投稿し、投稿された結果を報告いただきたいのです。
※注意:投稿内容(本文)を同一にしてしまうと、重複投稿とみなされて、はねられてしまいます。必ず、本文は異なるものにし、別々にメールを送信してください。
報告いただくのは、いつものTimelogの「希望、要望、妄想Timelog」グループにお願いします。
【報告の方法】
post、ptstで同じ結果が出た場合:
送信された環境(詳しく)、投稿結果(反応なし・文字化けあり・文字化けなし)、画像添付(画像添付なし・画像反映OK・画像反応なし)、「結果同じ」
post、ptstで異なる結果が出た場合:
post:、ptst:の接頭辞を付けて、それぞれを報告してください。
例)携帯電話(フィーチャーフォン)、文字化けあり、画像添付なし、結果同じ
例)PCブラウザからのGmail、反応なし、画像添付なし、結果同じ
例)スマートフォンのGmail、post:文字化けなし、画像反映OK ptst: 反応なし、画像反応なし
例)PCのThunderbird、post: 文字化けなし、画像添付なし ptst: 文字化けあり、画像添付なし
例)スマートフォンのキャリアメール、文字化けなし、画像反映OK、結果同じ
例)PCブラウザからのプロバイダメール、post: 文字化けなし、画像反映OK ptst: 反応なし、画像反応なし
ちなみに、私の環境でのテストでは、
PCのThunderbird、文字化けなし、画像添付なし、結果同じ
PCブラウザからのGmail、反応なし、画像添付なし、結果同じ
でした。
※くどいようですが、投稿内容(本文)を同一にしてしまうと、重複投稿とみなされて、はねられてしまいます。必ず、本文は異なるものにし、別々にメールを送信してください。
テストへのご協力をどうぞよろしくお願いいたします。
以下、技術的考察です。
メールサーバはLinuxサーバで、メールの受信をトリガにPHPを起動し、内容をそのPHPスクリプトに引き渡します。
PHPは、受け取った内容をあまり加工せず、ヘッダも含め、そのままTimelogサーバの処理に引き渡します。Timelogサーバにて、Fromメールアドレス、Toメールアドレス、本文に分離し、前者二つを照合、OKの場合に本文での投稿を実施します。
投稿できないなどの問題の多くは、Timelogサーバ側で発生しているようです。例えば、純粋なメールアドレス
nakanohito@example.com
の場合はいけるのですが、名前を添えている場合
中の人 <nakanohito@example.com>
は、うまく解析できずに、メールアドレスの照合の段階で失敗し、投稿できないようです。
文字化けに関しても、PHP側とTimelogサーバ側で異なる場合に発生します。ISO-2022-JPですと問題なく投稿でき、Timelogができた頃は、これだけのサポートで問題なかったのですが、最近のGmail等はUTF-8で送信されており、Timelogサーバ(というか、ASP)がUTF-8を解釈できないために文字化けが発生します。
ASPではUnicodeのサポートがないため、単純な処理で解決はできなさそう。一方、PHP側では、対応は難しくないと思います。
しかし、単純に
$mail_text = mb_convert_encoding( $mail_text, “ISO-2022-JP”, “auto” );
としてもうまくいきませんでした。どんなコードでメールが送られてくるのかが分からないからです。
本当にいい方法は、PHP側で、メールアドレスや本文に分解した後でTimelogサーバ側に引き渡すことです。その方がずっと洗練された仕組みになります。だけど、現状ではそうはなっていないため、これを変えるくらいなら、その労力を新しいTimelogの開発に回したい、と思うわけです。