YakiBikiでメール通知機能をつけようと思って、LGPLのPHPMailer for PHP4 2.0.3(2009/01時点での最新)をDLしてSMTPドライバで動かしてみたが・・・
http://phpmailer.codeworxtech.com/index.php?pg=phpmailer
[12-Jan-2009 10:55:41] PHP Notice: Undefined variable: str in ...\yb-php\libs\phpmailer\class.smtp.php on line 1043
とか出て、MTAが250返してるのに get_lines() でそれが取れていないようで、いろいろと失敗する。
で、class.smtp.php のget_lines()をデバッグしていたら・・・
while($str == @fgets($this->smtp_conn,515)) { ^ !?
ここで上記Noticeが出力されていたらしい。
気になって、「そういえばXoopsもPHPMailer使ってたよな・・・」とXoopsCubeの2009/01/12時点でのlegacy版をDLして中を覗いてみたら、PHPMailerは2.0.2を使っていた。で、問題の箇所は
while($str = @fgets($this->smtp_conn,515)) { ^
となっていた。まぁ当然ですよね。
PHPMailer開発元へのレポートはまだ挙げたりしてないんですが、とりあえずYakiBikiはそこ直したやつを入れてます。皆様、ここのところ注意して PHPMailer for PHP4 2.0.3 をご利用下さい。