EC-CUBEでハマったSMTPの指定 | ヘビィ・SMD!

ヘビィ・SMD!

そんな・・・バナナ!!
1. 甘え度+10 恐れ度+10 寿命-1週間
2. 甘え度+10 恐れ度-10
3. 甘え度-10 恐れ度-10 寿命+1週間

業務上必須、とまではいかないが、
今後EC-CUBEを理解している必要があるため、
とりあえずローカルに最新版(2.11.0-beta)を入れてみた。

一応環境をまとめると
- OS : Windows XP
- Web Server : Apache 2.2.16
- PHP : PHP 5.2.14
- Database : PostgreSQL 8.4.4

こんな感じ。

必要な情報は「EC-CUBEができること/できないこと」だったので、
とりあえずソースはガン無視で動くことを最優先に。

したらば、動くには動いたんだが、メールが送れない。
ああそうか、smtpサーバ指定シテナイジャン。
ということで、smtpサーバを指定することに。
ググると、
data/module/Mail/smtp.php
だの、
data/module/Mail.php
だの、
data/module/Net/SMTP.php
だの、
色々設定する箇所があるようなないようなないような内容が多い。
一番それっぽい
data/module/Mail/smtp.php
の設定を変えてみるも、smtpサーバのmaillogには何も出力されない。
うーん。
wikiのsmtp指定も同じサーバにしているから、アプリケーションの問題のはずだ。
なんなんだ。
なんなんだ。
なんなんなんなんななふしぎ。

いや待て。
まだ慌てるような時間じゃない。

php.iniの[mail function]のsmtpを指定するも、、これもダメ。

面倒臭がらずにソースを見よう。

なるほど、SC_SendMailってクラスがゴニョゴニョやってるんだな。

$this->host = SMTP_HOST;

これ、か。

smtpに限らず、諸々の設定は
data/mtb_constants_init.php
に集約されている。

define('SMTP_HOST', "127.0.0.1");
これを任意のsmtpサーバに指定することで、メールが送れることを確認。
(タイミングはわからんが、data/cache/mtb_constants.phpにキャッシュされるので注意。)


結論。

横着かまさず、ドキュメントとソースを見よう。