にゃあ

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
本文*
合い言葉* ←「pol48lenco」と入力して下さい。
* この記事の話題と関係ないコメントはどんな内容でも削除します。(移動できないので)

トラックバック

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

コメント

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

このブログの著者


Suinと申します。

@suin on Twitter

サブメニュー

最近気になるモノ!

WindowsからMacに乗り換えて半年ですが、Macは細かいところまで丁寧に作られていて、親切なユーザーインターフェイスが気に入ってます。iMacはMagic Mouseと洗練されたデザインのBluetoothキーボードがついてくるので、お得だなあ、なんて思ってます。私に買ってもいいという方、いたら教えてください 笑。

最近のエントリ

XOOPS Cube Dev Ring

最近のコメント

最近のトラックバック

ひとりで喜ぶログ
デュラララに登場するチャットを再現した (04/09)
ひとりで喜ぶログ
デュラララに登場するチャットを再現した (03/28)
http://www15.atpages.jp/~classicalstudio/wordpress/?p=50
getcwd()とdirname(__FILE__)は違う結果になるときがある (12/22)
Re:
CSSのtext-align:center;は<div>には通用しない (12/15)
XOOPS専門-株式会社RYUS - d3blog
Shiori 1.02 (12/02)
9deMaio.com - blog
Koins 1.00 (11/11)
インターネット覚え書き「ビボウログ」
CSSのtext-align:center;は<div>には通用しない (09/16)
hinoeuma1966
CSSのtext-align:center;は<div>には通用しない (07/03)
Suin.org
ブログ作ってみた (03/23)
Suin.org
ブログ作ってみた (03/23)