OpenPNEを、Windowsなどで利用する際、メール送信が出来ないときのTips。
■システム構成
XAMPPでの構築を想定(多分その他の場合でも当てはまるはず)
OS:Windows
■問題点
WindowsではSendmailが使えないため、コマンドを置き換えてやる必要がある。
■解決策
解決策としては2パターン
1:mail_send.phpを書き換えるパターン
参考:http://dogu.no-ip.org/archives/2006/12/openpnesmtp.php#comments
こちらにあるコードを拝借する。
しかし、こちらにあるコードをそのまま使うと、'やら)やらが抜けていてパースエラーが出ますので、下記を利用していただくのもOK。
そのmail_send.phpの60行目
return mail($address, $subject, $body, $headers, $params);
コチラの行を、以下のコードで書き換えます。
//ここから書き換え
include('Mail.php');
$recipients = "$address" ;
$headers = "" ;
$headers['From'] = $from ;
$headers['To'] = "$address";
$headers['Subject'] = "$subject";
$mail_options = array(
'host' => 'smtp.hogehoge.com', // SMTPサーバー名
'port' => 25, // ポート番号
'auth' => false, // SMTP認証 true false
'username' => "", // ユーザー名
'password' => "", // パスワード
'localhost' => 'www.hogehoge.com', //送信元サーバーのFQDN名 HELOに使う
);
$mail_object =& Mail::factory("SMTP",$mail_options);
$mail_object->send($recipients, $headers, $body);
//return mail($address, $subject, $body, $headers, $params); //オリジナルをコメントアウト
//ここまで
これでうまく行きました。
パターン2:sendmailをおきかえる
参考:http://d.hatena.ne.jp/openpne/20061029/1162141112
sendまねーるというソフトを利用すると、WinでもSendmailと同じ機能を使うことが出来るらしい。
インストール方法は、このままでOK。
しかし、私の環境では利用出来ませんでした。サーバーの設定など関係あるのでしょうかね。
こんな感じで解決策でした。
ちなみにOpenPNEのバージョンは2.6を利用しています。