.procmailにプログラム起動用の設定を書いて何度か、
否、何十回かメールを送り続け、ネットも調べてみたが、
no such file or directory と言われ拒否られていたワタクシ。

しかしなんのことはない、.procmailの文字コードが
shift-jisに、改行コードが crlf になっていたのだった。
全然気付かなかった・・・。


文字コードと改行コードをそれぞれ、euc-jp、lf のみに変更して
再処理したら正常に動きました。

ちなみに自分が使っているレンタルサーバの drive.ne.jp では、
.forwardは利用できないので、.procmailで設定せねばならない。

設定は以下の通りとした。

------------
SHELL=/bin/csh
PATH=/bin:/usr/bin:/usr/sbin # procmailが使用するパス
LOGFILE=$HOME/procmail.log # ログファイル名
LOCKFILE=$HOME/.lockfile # ロックファイル名
MAILDIR=$HOME/inbox/ # メール格納場所
DEFAULT=$MAILDIR # レシピにマッチしなかった場合の格納場所
DIRECT=プログラムのおいてあるパス

:0
| $DIRECT/test.php
------------

test.phpの先頭には、phpのパスを記載し、かつ
実行権限を755にしている。

その辺も気をつけねばなるまいて。
下記例は、販売価格(price02)を、定価(price01)の半額( / 2 )にしている。

update dtb_products_class
set price02 = price01 / 2
where product_id in ( select dtb_products.product_id
from dtb_products, dtb_products_class, dtb_product_categories
where dtb_products.product_id = dtb_products_class.product_id
and dtb_product_categories.product_id = dtb_products.product_id
and dtb_product_categories.category_id = カテゴリID
and dtb_product_categories.product_id not in( 商品ID,[...] ) )

最終行の not in に商品IDを指定すれば、その商品は更新対象から除外できる。
でも dtb_products は join する必要がなさそうな気がするなー。

手順1
・管理画面のシステム管理→マスターデータ管理を選択
・リストボックスからmtb_mail_templateを選択
・追加したい選択肢を入力して登録

手順2
・同一画面のリストボックスからmtb_mail_tpl_pathを選択
・手順1で追加したIDと同じIDを追加し、ファイル名を入力して登録

手順3
・手順2で追加したファイルをテキストエディタ等で作成し、サーバへアップロード

手順4
・管理画面の基本情報管理→メール設定を選択
・リストボックスに手順1で追加した選択肢が表示されていれば、あとはヘッダーとフッターを編集して終了。


ここまでたどり着くのに、4時間はかかった・・。
俺は無能だ・・・。てかEC CUBEむずかしぇー。