OpenPNEでSMTPでメール送信

OpenPNEのメール送信をsendmailではなくsmtpで送信する方法。

OpenPNE/webapp/lib/util/mail_send.php
のプログラム中の60行目付近


return mail($address, $subject, $body, $headers, $params);


include_once('Mail.php');
$recipients = "$address" ; 
$headers = "" ;
$headers['From'] = $from ;
$headers['To'] = "$address";
$headers['Subject'] = "$subject";
$mail_options = array(
'host' => 'SMTPサーバー', // SMTPサーバー名
'port' => 25, // ポート番号
'auth' => true, // SMTP認証 true false
'username' => "", // ユーザー名
'password' => "", // パスワード
'localhost' => 'サーバー名' //送信元サーバーのFQDN名 HELOに使う
);
$mail_object =& Mail::factory("SMTP",$mail_options); 
$mail_object->send($recipients, $headers, $body);

#return mail($address, $subject, $body, $headers, $params); //オリジナルをコメントアウト

に変更。

さらに、
SMTP.phpのプログラムがないので、
http://pear.php.net/package/Net_SMTP/
からNet_SMTPがらみのプログラムをダウンロード。
解凍しSMTP.phpを
OpenPNE/lib/include/Net/にコピーする。

これでSMTPでメールが送れるようになります。


参考文献
http://dogu.no-ip.org/archives/2006/12/openpnesmtp.php#c1513
http://oshiete1.goo.ne.jp/qa2847251.html