にゃあ

XoopsMailer::setToUsers()はXoopsUserかUserUsersObjectしか受け付けない!

白扇につづいてLegacy用のプロフィールモジュールを開発していたところ、なぜか新規登録で承認キーのメールが来ない(管理者には通知メールが来る)現象がおこりました。とりあえず、承認キー送信用のオブジェクトをvar_dumpしてみたら、「["toUsers"]=> array(0) { }」と出ました。

えぇぇぇぇ!

これじゃ届かないな~。原因を探るべくメーラーの中身を探すことにしたのですが、関数getMailer()でオブジェクトを拾ってきてるらしい?grep検索で探すのもめんどくさかったので、getMailer()でググってみたら、こんな一節が出てきました。

getMailer() は、XOOPS 2.0 系と同じ実装である。

えぇぇぇぇ!

そうだったの~?XoopsMailerに原因があるらしいな~。まずは、toUsersがからだったので、setToUsersで検索してみたら、更なる驚くべき事実がわかりました。

//@ToDo $user should be either XoopsUser or UserUsersObject now
if ( in_array(strtolower(get_class($user)) , array("xoopsuser", "userusersobject"))) {
	array_push($this->toUsers, $user);
}

ひやぁぁぁぁ!

これは、クラス名がXoopsUserかUserUsersObjectじゃないと宛先にしてくれないというものです。つまり、UserUsersObjectを継承した私のProfileUsersObjectは仲間はずれにあっていたようです...。゜(つω`)゜。X2のものなので仕方ないことではあります。

XoopsMailerを継承して、いっそのことsetToUsers()をオーバーライドしてやろうかと思いましたが、各言語によってメーラーを切り替えているみたいなので、継承することはやめ、メール配信のときだけ、XoopsUserをnewして値を渡すか、setToEmails()で直接メールアドレスを渡すかすることにします。


コメント&トラバ

トラックバックを送る

無関係なスパムのトラックバックを防止するため、リンク先で本サイト(suin.asia)への言及が確認されないトラックバックは破棄しています。

トラバURL : http://suin.asia/trackback/100

コメントを書く

お名前* URL
本文*
合い言葉* ←「prealjones」と入力して下さい。
* この記事の話題と関係ないコメントはどんな内容でも削除します。(移動できないので)

トラックバック

トラックバックがないのはさみしいにゃん…。

コメント

コメントはないです。誰かコメント書いてよぅ…。

Author

Submenu

Recent Entries

XOOPS Cube Dev Ring

氷川 XOOPS Module 開発室

Recent Comments

Recent Trackbacks

facebookいいね