スキップしてメイン コンテンツに移動

さくらインターネットの .mailfilter にハマる

公式の情報が見つからなかったので、かなり悩みましたが、些細な一言で脱出できました。
僕がハマったのはパスの設定。
さくらインターネットの共有サーバーを申し込んで、テスト環境を手に入れました。
ウェブ経由で実行したところ、うまく動いたのでメールをトリガー(フックする)として実行するPHPを仕込みました。




持っていた独自ドメインをサーバーに設定するのに、約一日かかってしまい(おそらくサーバーのDNSの更新待ち)、予想外にずれこんでしまう。土日で仕掛けようと思っていたのが週を明けてしまったではないですか。
まぁそれはいいんですが、.mailfilter にパイプ渡しするパスを記述し、PHPのテストも終わっていたので意気揚々メールを送信。エラーが返ってくる。

内容は
554 5.3.0 unknown mailer error 255

こんな感じ。PHPのerror_logを確認したいのだけれど、このプランでは直接ファイルを見ることはできないよう。
仕方がないので、パスを変え、PHPの置き場を変え、色々試し、そろそろ嫌気がさして仮登録だから諦めようか(笑)なんて弱気になってきたところ、ひとつの文章が目に入る。

プログラムの実行ディレクトリは.mailfilterのあるディレクトリなので注意。


基準のパスが違うんだな~。相対パスは危険! 便利だし、普通は絶対パスなんかでプログラム書きませんよね。テスト環境から本番へ移行するとき面倒極まりないですし。
で、どうしたかというと、
require_once dirname(__FILE__). "/hoge.php";

全ての相対パスに、「dirname(__FILE__).」をプレフィックスのように付けました。

PHPも色んな使い方ができるようになってきたので、移植性を考えると相対パスはやめた方がいいかも知れません。

2011.05.25 追記
PHP5.3.0 から、__DIR__という定数が追加されました。
これは、現在のファイル名から、ファイル名を除いたディレクトリ構成だけが格納された定数で、dirname(__FILE__)と同じ内容です。5.3.0以降のPHP限定のシステムでは利用すると良いでしょう。


see also:
メールサーバーがスパムの踏み台になった時にハッピーになれるツールを紹介します
スパムは続くよどこまでも - qmail vs spam 全面戦争編 -

php-mcryptがyumでインストールできないときに幸せになる方法
そろそろ真面目に自動テストしよう
PHPerが一瞬でC言語をマスターする方法
PHPのmysql系関数のまとめ


コメント

このブログの人気の投稿

[VB.NET]オレオレ証明書でSSL通信するための短絡的な解決法

VB.NETソフトウェアでサーバーと通信することはよくある事だと思いますが、最近はHTTPを使って明けっ広げに刺しに行くよりHTTPSを使って暗号化してこそこそやった方が時代の流れに即した感じですよね(違うか)。 いちいちテスト環境でSSL証明書を用意するのも面倒だということで、セキュリティ的には全くよろしくない方法で迂回できるので紹介します。

[JS]Canvasでよく使う描画テクまとめ

HTMLで画像をいじくりたい時は、canvasを利用して編集するのは一般的ですが、WindowsストアアプリではHTML+CSS+JSでのアプリ開発ができる事もあって、簡単な画像編集であれば、C#やVBを使うより分かりやすいし資料が多く、C++でDirectXをガリガリ書くよりお手軽。入出力もファイルピッカーを使えば簡単に実装できます。今回は、Windowsのコードではなく、Canvasを利用する時のJavaScriptを使いどきに合わせてまとめていきます。

curl の基本的な使い方 -設定編-

今回のcurl TIPSは、curlをより日常的に使っていくためのHow toです。curlには、数多くのオプションが用意されていて、それらを組み合わせる事で様々な事が楽になるでしょう。サービス監視の自動化などにはまさにcurlの得意分野です。 今回は、curlを更に自分のものにしていくために大事なカスタマイズの部分を解説します。