IT仕事

空メールを送る仕組みをはじめて作るのに苦労した記録

投稿日:

4日間、苦労。モウイヤ。

■1日目:
携帯から空メールを送ったら、サーバがクリックしてほしいURLと送り主のメルアドを本文に書いて返す仕組み、それを作りたい。しかし何を準備してどうすればよい? まずは、そこからわからん。
ググって見ると、mailfilterという仕組みがあればよいとわかった。が、調べてみたら、会社で借りているplus-serverやロリポップ、WebArenaではそれは使えなかった。対応しているレンサバは少ないみたい。
しかし個人で借りている2つのレンサバのうちのひとつ、hostingrails.comはそれができた、ラッキー。

レンサバのcPanelには、メールの項目があり、ユーザレベルのフィルタリングとある。あと、フォワーダというのもある。あれやこれやといじっては見る。

メール転送の設定についてはなんとなくわかってきたが、メール受信で起動するPHPプログラムをまだ作っていなかったので、ググってサンプルを探して、自分のやりたいように修正する。フィルタ設定とPHPプログラムと、わからない二つを同時に手をつけることは危険だが、仕方ない。

いろんなブログやサイトを参考にしながら、数行のごく基本的なsendmailのPHPを何とか完成、メール受信をトリガにしてこのプログラムを動かす事に成功。
ここでギブアップ。

■2日目:
前日のPHPに記述を加えて自分のやりたいように直す。
しかし問題発生。

1.PCメールは返信されるが、ケータイメールは返信されない(ケータイといってもWillcomだが)。
2.返信されたメールともう一通、エラーメールが届く。エラーのほうには、PHPソースの書き換えによってはfailとかwarningとかioncubeとか書いてある場合もあるし、何も書いてない場合もある。あと不思議なことにエラーメールが届かないこともある。まあこれはごくシンプルなPHPソースの場合だけど。

1については、どうやらdocomoはメールの送信者名を記号で囲っていないことが原因らしいことがわかった。Willcomはだいたいがimode互換なので、きっとそう(?)。
docomoに対応していそうなPHPソースをググって見つけ、一応クリア。

2.については、何がなにやら、本当にわからずに2日消費。
Hostingrailsのフォーラムに質問してみたり、PHPのPEARパッケージのインストールやパスを疑ってみたり、php.iniをどこかで変えなくてはいけないのかと設定できる方法を探したり、代わりにできないかと.htaccessを置いてみたり、パーミションをあれこれ変えたり。
しかし決して成功することなく、ドツボにはまる。
この日は失意のうちに終了。

■3日目:
cPanelの設定が悪いのかPHPプログラムが悪いのか、両方が悪いのか、さっぱりわからない。
cPanel上のフォワーダを使ってみたがメッセージが変わるだけで、やっぱりエラーメールが返ってくる。
ううむ。

■4日目:
PHPプログラムが悪いような確信がだんだんしてきたので、いろいろと変えてみた。
その中で、一行目の、
#!/usr/local/bin/php -q
を行削除してみたら、これがビンゴ!
エラーが出なくなった。うれしい!

■参考にした情報ソースいろいろ
空メールの方法で一番参考になったのは、これ。
kawama.jp: 携帯の空メール機能を実装

あとは、これ。
ひでぶろぐ PHP全般さくらサーバーメールトリガー
さくらで空メールシステム作った時のメモ – 暗黒面Javascript開発ブログ
phpで空メールサービス:PHP講座

後で気づいたのだが、まったく関係ないはずのcPanelのファンタジスコをクリックするとエラーが出た(サポートに翌日メールして直してもらったが)ので、ひょっとするとサーバホスティング側も何か設定ミスをしていたのかも。今となってはわからんが。

-IT仕事

執筆者:

関連記事

アンケートソフト秀吉でMAを作るためのExcel自作関数

会社の同僚用に作った。 複数列の回答を「1,2,4」のように1列にしたり、3は無ければ飛ばしたり、先頭と末尾にはカンマつけないで、とか、手作業だと色々面倒な処理を、Excelマクロにした。 以下を標準 …

no image

最近使ったロイヤリティフリー写真素材サイト

普通。Mで1620円位? http://pixta.jp/   安め。Mで1000円以下 http://jp.fotolia.com/   古め・安め http://www.dex …

Word2013で「内容に問題があるため開くことができません」エラー、なんとか生還

昼休み前に保存して閉じたWord文書を、昼休み開けに開くと、上記エラー発生。 午前中いっぱいかかって作った仕事がパー! ・・・ということにしたくなかったので、あれこれもがいてみたら、何とか開くことがで …

no image

PHPエディタ

PHPエディタ、なかなか使い勝手がいい。 書いたコードを、PHPの予約語や文字属性を区別して、色分けしてくれたり。 カーソル付近にある括弧を、対応するもの同士、太字にしてくれたり。 意外だったのは、C …

no image

AccessとBASP21で正規表現を使ってメール文から必要事項を取り出すサンプル

Accessで正規表現を使いたかったのですが、ネット上にはサンプルが少なく、苦労したので、とりあえずツギハギで作った私のコードを披露したいと思います。 Accessで正規表現を使うには、BASP21を …