以前作った匿名メーラーにバグっぽいのがあった。いや、これはむしろ携帯のキャリアに依存するものかもしれない。
「vodafone」はその仕様上、全角で192文字以上のメールを受け取る時には、サーバーに再び接続する必要がある。
この匿名メーラーで作った全角192文字以上のメールを受信すると、通知は正常だが再接続して取得すると本文が消える。
他のキャリアだと正常に動作してるっぽいんだが。で、手っ取り早く原因を解明してみようと「こんな検索」をかけてみた。
どうやら、MIMEタイプやContent-Typeなどのヘッダ部分の記述が足りていないと、正常にメールの受信が出来ないらしい。
そんなワケで、メールの本文を送信する部分の直前に、下記のような記述を追加してみた。この程度で直ると思うんだけどな。
# MIMEタイプの指定 $smtp->datasend("Mime-Version: 1.0\n"); # エンコードの指定 $smtp->datasend("Content-type: text/plain; charset=iso-2022-jp\n"); $smtp->datasend("Content-transfer-encoding: 7bit\n");
この記述を追加した状態で、全角で192文字以上の追加受信を必要とするメールを送ってみると……テストは成功!
そもそも通知だけ正常で再接続後の受信だけが変だってこと自体が変なワケで。これはサーバー側の問題だろうか。
再接続が必要ないメールのやり取りと、ロングメールやスーパーメールのやり取りとは仕組みが随分異なるようだな。
一回サーバーにデータをプールさせる際にエンコードやらMIMEタイプが問題になってくるのだろう。なるほどねぇ。
ついでに、送信履歴を取るように変更。サーバーはPragma:no-cacheがオンなので、送信後に内容の再確認が出来ない。
今何を送ったっけってのが結構あったため、ログに残すと便利かなーなんて。んで、5分程度でささっと実装してみた。
それにしても、メールの送信ってのは簡単にできるくせに、メールの受信ってのは簡単にはできないモンなんだな。
ドメインを欲しいとかって思ってた時期もあったけど、さすがに今ごろになってあれこれ手を出すのもメンドいんだよねー。
朝っぱらから体調不良。起きたら喉と頭が痛い。気分は劣悪。多分風邪だろうけど、また中途半端な時期に引いたな。
やはり一年に最低一回は体調を崩すのが慣習になってるらしい。あとちょっとで寒い時期を突破できたんだけどな。
薬飲んだから頭はフラフラだし、モノレールの定期を買わなきゃいけなかったから慌しかったし、朝から必死でした。
職場に着いてもやる気が出ないわ、やたらと意識が落ちそうになるわでどうしようもなかった。体調管理は重要すぎ。
その割には意外と仕事が進んだ気はするけど。アレか、普段みたいに意識が他のものに移ったりしなかったからかな。
昼飯を食って薬飲んで、また午後からは意識が飛びそうになる。眠気覚ましに一服行きたいが、喉が死んでるため却下。
気が付けばあっという間に定時。しかし、ある程度の進捗はこなす必要があるため、何とか21時くらいまでは耐えて仕事。
夕食を忘れていたことに気付き、小作駅周辺のラーメン屋で食って、さっさと帰ることに。結構美味かったが店名忘れた。
家帰って薬飲んで、さっさと寝ることに。やべ、今の機能は今週中ごろにリリースなのに、まだ死ぬには早すぎます。
ついにダウン。体調悪すぎ。インフルエンザっぽくないのがまだ救いだけど、とりあえずここは無難に有給休暇を選択。
とりあえず朝食を取ってから連絡して、部屋で静かに過ごします。あぁ、U野さんごめんなさい。明日には仕上げます。
でも、多分今日くらいは休んでもあまり支障は無さそうな気がする。昨日の夜の時点である程度まで完成させてきたし。
あとはPDFとCSVとかの帳票関連とかの調整かな。ってか、どのプロジェクトに入っても帳票関係の担当になるのは何故?
ってか、せっかくとった有休の日にまで仕事の話は考えたくないので却下。あ~、頭がシャキっとしないのがイラつく。
何かをやるにしても集中力続かないし。修正したCGIでも配布しようかと思ったけど、ホントにもう色々とメンドくさくなる。
何が悪いって昼飯が悪い。俺を病人だと知った上でなのか、何で昼飯にカップラーメンが出てきますか。美味かったけどさ。
後は意識朦朧としたまま寝たり起きたり風呂入ったりしてた。痴呆老人の気分を24歳にして味わったような感覚が新鮮。
ってか、ぶっちゃけ書くのもかったるいし、ロクな内容も思い浮かばない。今日はおとなしく寝込んでおくことにしますか。
体調が全く回復の兆しを見せない。朝から晩まで酒を飲んでいるように、頭が常にクラクラするのがキツいのです。
で、果たしてこれは風邪なのか花粉症なのか。花粉症なんてなったことないから、症状の区別が出来なくて困る。
喉を痛めて体力が低下しているときに花粉が飛んだから、運悪く併発したんだろう。何だってこんな時期に……。
週末は用事があるので、何としても体調を回復させる必要がある。とりあえずまともに寝るようにはしないとな。
薬を飲みたいところだが、風邪なのか花粉症なのか区別できないから薬を買うにも買えない。誰か診断してくれ。
医者に行きたくても時間が無いし、かといって放置しておいてもすぐに治りそうな症状じゃないし。どうしろと言うのだ。
で、相変わらず意識が朦朧としたまま仕事をするハメに。何でか知らんが、そこそこ進捗が進むのがありがたい。
CSVダウンロードしようとすると何故かブラウザが落ちるバグに引っかかり、結局職場を出るのは22時前後になる。
帰宅すると23時半、後はもうただ寝るだけです。いつもなら多少はゆっくりするのだろうが、起きているのがツラい。
せめて喉の調子だけでも良くなってもらわないと、ロクに一服すらつけられないんだよな。週末までに治るのだろうか。
先生!朝から夜まで眠いです!意識がしっかりしてないせいで、普段より頭が微妙に混沌としている。こんな感じ。
┃┃ ┃┃ ┏━━━━━━┓┏━━━━━━┓┏━━━━━━┓┏━━━━━━┓ ┃┃ ┃┏━━━━┓┃┃┏━━━━┓┃┃┏━━━━┓┃┃┏━━━━┓┃ ┃┃┏━┫┣━━━━┻┻┫┣━━━━┻┻┛┗━━━━┻┻┫┣━━━┓┃┃ ┃┃┃┏┫┣━━━━┳┳┫┣━━━━┳┳┓┏━━━━┳┳┫┣━━┓┃┃┃ ┃┗┫┣┻┻━┓┏━┫┣┛┗━┓┏━┫┣┻┻━┓┏━┛┗┻┻━┓┃┃┃┃ ┗━┫┣┳┳┓┃┃┏┫┣┓┏┓┃┃┏┫┣┳┳┓┃┃┏┓┏┳┳┓┃┃┃┃┃ ┃┃┃┗┻┻┛┗┛┃┃┗┻┻┛┗┛┃┃┗┻┻┫┣┛┃┃┗┛┗┫┣┛┃ ┃┃┗━┳┳┓┏━┛┗━┳┳┓┏━┛┗━┳┳┫┣━┛┗━┓┏┫┣━┛ ┃┃┏━┫┣┻┻━┓┏━┫┣┻┻━┓┏━┫┣┛┗━┓┏━┫┣┻┻━┓ ┃┃┃┏┫┣┳┳┓┃┃┏┫┣┳┳┓┃┃┏┫┣┓┏┓┃┃┏┫┣┳┳┓┃ ┃┃┃┗┛┃┃┗┛┗┫┣┛┃┃┗┛┗┫┣┛┃┃┗┻┻┛┗┛┃┃┃┃┃ ┃┃┃┏━┛┗━┓┏┫┣━┛┗━┓┏┫┣━┛┗━┳┳┓┏━┛┃┃┃┃ ┃┗┻┻━┓┏━┫┣┻┻━┓┏━┫┣┛┗━┓┏━┫┣┻┻━┓┃┃┃┃ ┗━┳┳┓┃┃┏┫┣┳┳┓┃┃┏┫┣┓┏┓┃┃┏┫┣┳┳┓┃┃┃┃┃ ┃┗┻┻┛┗┛┃┃┗┻┻┛┗┛┃┃┗┻┻┫┣┛┃┃┗┻┻┫┣┛┃ ┗━┳┳┓┏━┛┗━┳┳┓┏━┛┗━┳┳┫┣━┛┗━┳┳┫┣━┛ ┏━┫┣┻┻━┓┏━┫┣┻┻━┓┏━┫┣┛┗━┓┏━┫┣┻┻━┓ ┃┏┫┣┳┳┓┃┃┏┫┣┳┳┓┃┃┏┫┣┓┏┓┃┃┏┫┣┳┳┓┃ ┏━┫┣┛┃┃┗┻┻┫┣┛┃┃┗┛┗┫┣┛┃┃┗┻┻┛┗┛┃┃┃┃┃ ┃┏┫┣━┛┗━┳┳┫┣━┛┗━┓┏┫┣━┛┗━┳┳┓┏━┛┃┃┃┃ ┃┃┃┗━┓┏━┛┗┻┻━┓┏━┫┣┻┻━┓┏━┛┗┻┻━┓┃┃┃┃ ┃┃┃┏┓┃┃┏┓┏┳┳┓┃┃┏┫┣┳┳┓┃┃┏┓┏┳┳┓┃┃┃┃┃ ┃┃┃┗┻┻┫┣┛┃┃┗┻┻┫┣┛┃┃┗┻┻┫┣┛┃┃┗┻┻┫┣┛┃ ┃┃┗━┳┳┫┣━┛┗━┳┳┫┣━┛┗━┳┳┫┣━┛┗━┳┳┫┣━┛ ┃┃┏━┫┣┛┗━┓┏━┫┣┛┗━┓┏━┛┗┻┻━┓┏━┛┗┻┻━┓ ┃┃┃┏┫┣┓┏┓┃┃┏┫┣┓┏┓┃┃┏┓┏┳┳┓┃┃┏┓┏┳┳┓┃ ┏━┻┻┫┣┛┃┃┗┻┻┛┗┛┃┃┗┻┻┫┣┛┃┃┗┛┗┫┣┛┃┃┃┃┃ ┃┏┳┳┫┣━┛┗━┳┳┓┏━┛┗━┳┳┫┣━┛┗━┓┏┫┣━┛┃┃┃┃ ┃┃┃┗┻┻━━━━┫┣┻┻━━━━┫┣┻┻━━━━┫┣┛┗━━┛┃┃┃ ┃┃┗━┳┳━━━━┫┣┳┳━━━━┫┣┳┳━━━━┫┣┓┏━━━┛┃┃ ┃┃ ┃┗━━━━┛┃┃┗━━━━┛┃┃┗━━━━┛┃┃┗━━━━┛┃ ┃┃ ┗━━━━━━┛┗━━━━━━┛┗━━━━━━┛┗━━━━━━┛ ┃┃
でも、ある意味では花粉症(多分)も悪くない。いつもよりも仕事が捗るのです。他の事に手が行かなくなるからね。
おかげで、ややこしい変更にもかなり容易に耐えられます。今思うと、昨日と今日の変更内容はかなりハードだったな。
だからと言って、このまま花粉症でいてもいいものかと言えば、ンなワケない。休日にそれ関連の薬でも見に行こう。
……普段より頭がおかしいせいか、上の行の「見に行こう」を書いた瞬間にどこぞの神の「ミニにタコが」を思い出した。
そろそろ花粉症って断定してもいい頃かな。普通の風邪ならさすがに治ってる頃だろうし。あ~あ、ついになっちまったか。
あまり花粉症の知識ってないんだけど、これって一回なったら毎年なっちゃうモンなの?それはかなりキッツいだろうなー。
鼻はおかしいわ、目に違和感はあるわ、くしゃみは出るわで大変です。ちなみに咳も出るんだけど、花粉症って咳出るの?
「vodafone」がようやくその重い腰を上げて「URL付きメール受信拒否機能」と「なりすましメール対策」を導入です。
自分と携帯にもかなり頻繁に迷惑メールやら広告メールが飛んできます。一応公式でフィルタリングしてるんだけどね。
上記の対策で前者は恐らくは絶大な効果を上げる事になるでしょう。だが、「@写メール」利用者に影響は出ないのかな?
ってか、「@写メール」の使い方はこのサイト内に書かれているパターン2の方法しか知らなかった……。nesm.jpねぇ。
とにかく、特定の方法でこのサービスを利用すると相手先にはURLが通達され、そこからデータを取得する手順になる。
この辺で妙な弊害が出すなよなー。その辺はあるかどうかわからない「vodafone」の手腕に期待するフリでもしておくかな。
と思ってみたものの、よく読んでみると特定URLのデータベースとか、そういうデータベースを提供する会社があるらしいね。
設定もそれなりに色々とできそうだし。実施開始は3月30日か。利用者の反響がどんな感じか気になるところだな。
そして後者の通称「なりすましメール」。送信元のアドレスを携帯からであると偽って送られてくるメールの総称です。
もちろん、送信元の特定というのはアドレスだけでは不可能なのです。一通のメールにも大量の情報が含まれてます。
例えば自分の使っている「vodafone」の携帯から、職場のアドレスに送った場合のメールの情報はこんな感じになるのです。
# サーバーがメールヘッダーの先頭部分に付加するアドレス Return-Path: <xxxxxxxx@t.vodafone.ne.jp> Delivered-To: x.xxxxxxx.xxxxxxxx@xxxxx.xxx.xxxxxxx.co.jp Received: (qmail 23729 invoked from network); 11 Mar 2005 09:44:44 +0900 Received: from xxx.xxxxxxx.co.jp (xxx.xxx.xxx.xxx) by xxx.xxx.xx.xx with SMTP; 11 Mar 2005 09:44:44 +0900 Received: from xxx-xxxx.xxxxxxx.co.jp by xxxxxxx.co.jp id xxxxxxxxxxxxxx; Fri, 11 Mar 2005 09:44:43 +0900 (JST) Received: from xxxx-xxx.xxxxxxx.co.jp by xxx-xxxx.xxxxxxx.co.jp with ESMTP id xxxxxxxxxxxxxx for <x.xxxxxxx.xxxxxxxx@xxxxx.xxx.xxxxxxx.co.jp>; Fri, 11 Mar 2005 09:44:42 +0900 (JST) Received: from xxxxx.xxx.xxxx.net (xxxxx.xxx.xxxx.net [xxx.xxx.xx.x]) by xxxx-xxx.xxxxxxx.co.jp with ESMTP id xxxxxxxxxxxxxx for <x.xxxxxxx.xxxxxxxx@xxxxx.xxx.xxxxxxx.co.jp>; Fri, 11 Mar 2005 09:44:42 +0900 (JST) Received: xxx xxxxx id xxxxxxxxxxxxxx; Fri, 11 Mar 2005 09:44:42 +0900 (JST) Received: xxx xxxx from xxxxxxx.t.vodafone.ne.jp (xxxxxxx.t.vodafone.ne.jp [xxx.xxx.x.xx]) for <x.xxxxxxx.xxxxxxxx@xxxxx.xxx.xxxxxxx.co.jp> id xxxxxxxxxxxxxx; Fri, 11 Mar 2005 09:44:41 +0900 (JST) Received: (from root@localhost) by xxxxxxx.t.vodafone.ne.jp (8.9.2+3.1W/3.7W) id xxxxxxxx for <x.xxxxxxx.xxxxxxxx@xxxxx.xxx.xxxxxxx.co.jp>; Fri, 11 Mar 2005 09:44:40 +0900 (JST) # メールのユニーク性を保つためのID番号 Message-Id: <xxxxxxxxxxxx.xxxxxxxx@t.vodafone.ne.jp> # 送信先アドレス To: x.xxxxxxx.xxxxxxxx@xxxxx.xxx.xxxxxxx.co.jp # 送信元アドレス From: "=?ISO-2022-JP?B?xxxxxxxxxxxxxxxxxxxxxxxxx="<xxxxxxxx@t.vodafone.ne.jp> # 件名 Subject: Message From Vodafone # メールの送信日付 Date: Fri, 11 Mar 2005 09:44:40 +0900 # 重要度の指定(1が最も重要度が高い) X-Priority: 3 # 返信先アドレス(送信元と一致しない場合もある) Reply-To: xxxxxxxx@t.vodafone.ne.jp # エラー通知の送信先 Errors-To: xxxxxxxx@t.vodafone.ne.jp # メール本文が対応しているMIMEタイプのバージョン MIME-Version: 1.0 # 本文の記述スタイル Content-Type: text/plain; charset="iso-2022-jp" # エンコード方式 Content-Transfer-Encoding: 7bit
本当はこの下に続けてメールの本文が色々と入ってきます。緑っぽい文字の行は自分で追加した補足ですので。
2016/01/17 追記
これはソースでも何でもないので、色付けを消して、ただの<pre>にしちゃったので、色は消えてます。
会社の情報とか自分のアドレスとかメッセージIDとかを消しちゃうと、何が何だかワケわからん状態になってしまうな。
とにかく、こういった色々な情報の中から「配信元のIPアドレスは本当に携帯電話のものか」などを確認するワケです。
上記の情報を書いていて思ったんだけど、3月6日の雑記で書いてあるMIMEタイプ関連もしっかり記述されていますね。
しかも、「Mime-Version」ではなくて「MIME-Vesion」らしいし。時間のある時にでも色々とヘッダー修正しなきゃな。
ちなみに「From:」の部分はアドレスと発信者名を設定できます。xxxに書き換えてありますが、普通は名前が入る。
「=?ISO-2022-JP?B?」に続けて文字化けしたみたいな文字列が続きますが、これはエンコード文字列なので注意。
そう言えば、去年の夏に品川勤務だった時にもメール送信であれこれ作りまくったよなぁ。面白かったけどさ。
土日で色々修正しよっかな。あー、でも土曜は用事があるし日曜は寝るんだった。立川帰るまで待ちましょう。