受信箱に通知があったらメールしたい
投稿者: vitamin | 投稿日時: 2006-5-24 17:23 | 閲覧: 5314回
XOOPSのデフォルトについてある「受信箱」ですが
受信箱に通知があったら、メールでユーザーにあったことを伝えたい
のですが、どのようにすればよいかなにかヒントをいただけますでしょうか。
毎回通知される場合と一日にいっかい通知がたまっていたらメールする方法などを考えています。
あと、この受信箱、実際には
送信箱や保存などもないので、かわりになる
モジュールとかは存在しないのでしょうか。
調べてみたのですが、見当たらないので。
受信箱の改良になるような情報があればください。
受信箱に通知があったら、メールでユーザーにあったことを伝えたい
のですが、どのようにすればよいかなにかヒントをいただけますでしょうか。
毎回通知される場合と一日にいっかい通知がたまっていたらメールする方法などを考えています。
あと、この受信箱、実際には
送信箱や保存などもないので、かわりになる
モジュールとかは存在しないのでしょうか。
調べてみたのですが、見当たらないので。
受信箱の改良になるような情報があればください。
コメント(3)
新しいものから |
古いものから |
ネスト表示 |
Re: 受信箱に通知があったらメールしたい
投稿者: vitamin | 投稿日時: 2006-5-24 20:25
自己レスですが
なんとか調べてやってましいまた。
kernel/privmessage.phpの142行目からこのように追加しました
/inc/boxtoemail.tpl というファイルにメールのテンプレートをおいて
使いました。
一応、テストしてうまくいきました。
リアルタイムでの送信だけですが。
なにか無駄なところや、問題があれば指摘してください。
$xoopsConfig['sitename']などが取得できていませんが
どうすれば、この時に取得できますか?
----------------------------------------------------
if (!$result = $this->db->query($sql)) {
return false;
}else{
//このelseからHack ユーザーにメールで知らせる
//送信先id $to_userid からメールアドレスを取得
$member_handler =& xoops_gethandler('member');
$to_user =& $member_handler->getUser($to_userid);
if (is_object($to_user)) {
$ts =& MyTextSanitizer::getInstance();
$to_user_uname=$to_user->getVar('uname');
$to_user_name=$to_user->getVar('name');
$to_user_email=$to_user->getVar('email');
}
//送信者id $from_userid からユーザー名とネックネームを取得
$member_handler =& xoops_gethandler('member');
$from_user =& $member_handler->getUser($from_userid);
if (is_object($from_user)) {
$ts =& MyTextSanitizer::getInstance();
$from_user_name=$from_user->getVar('name');
$from_user_uname=$from_user->getVar('uname');
}
//メッセージ内容は$msg_text,タイトルは$subject
//メール作成
$myts =& MyTextSanitizer::getInstance();
$xoopsMailer =& getMailer();
$xoopsMailer->setTemplateDir(XOOPS_ROOT_PATH.'/inc/');
$xoopsMailer->useMail();
$xoopsMailer->setTemplate('boxtoemail.tpl');
$xoopsMailer->assign('SITENAME', $xoopsConfig['sitename']);
$xoopsMailer->assign('ADMINMAIL', $xoopsConfig['adminmail']);
$xoopsMailer->assign('SITEURL', XOOPS_URL."/");
$xoopsMailer->assign('TO_USER_NAME', $to_user_name);
$xoopsMailer->assign('FROM_USER_NAME', $from_user_name);
$xoopsMailer->assign('FROM_USER_UNAME', $from_user_uname);
$xoopsMailer->assign('MSG_TEXT', $msg_text);
$xoopsMailer->assign('SUBJECT', $subject);
$xoopsMailer->setToUsers($to_user_uname);
$xoopsMailer->setToEmails($to_user_email);
$xoopsMailer->setFromEmail($xoopsConfig['adminmail']);
$xoopsMailer->setFromName($xoopsConfig['sitename']);
$xoopsMailer->setSubject("あなたの受信箱にメッセージがありました");
if ( !$xoopsMailer->send() ) {
} else {
}
なんとか調べてやってましいまた。
kernel/privmessage.phpの142行目からこのように追加しました
/inc/boxtoemail.tpl というファイルにメールのテンプレートをおいて
使いました。
一応、テストしてうまくいきました。
リアルタイムでの送信だけですが。
なにか無駄なところや、問題があれば指摘してください。
$xoopsConfig['sitename']などが取得できていませんが
どうすれば、この時に取得できますか?
----------------------------------------------------
if (!$result = $this->db->query($sql)) {
return false;
}else{
//このelseからHack ユーザーにメールで知らせる
//送信先id $to_userid からメールアドレスを取得
$member_handler =& xoops_gethandler('member');
$to_user =& $member_handler->getUser($to_userid);
if (is_object($to_user)) {
$ts =& MyTextSanitizer::getInstance();
$to_user_uname=$to_user->getVar('uname');
$to_user_name=$to_user->getVar('name');
$to_user_email=$to_user->getVar('email');
}
//送信者id $from_userid からユーザー名とネックネームを取得
$member_handler =& xoops_gethandler('member');
$from_user =& $member_handler->getUser($from_userid);
if (is_object($from_user)) {
$ts =& MyTextSanitizer::getInstance();
$from_user_name=$from_user->getVar('name');
$from_user_uname=$from_user->getVar('uname');
}
//メッセージ内容は$msg_text,タイトルは$subject
//メール作成
$myts =& MyTextSanitizer::getInstance();
$xoopsMailer =& getMailer();
$xoopsMailer->setTemplateDir(XOOPS_ROOT_PATH.'/inc/');
$xoopsMailer->useMail();
$xoopsMailer->setTemplate('boxtoemail.tpl');
$xoopsMailer->assign('SITENAME', $xoopsConfig['sitename']);
$xoopsMailer->assign('ADMINMAIL', $xoopsConfig['adminmail']);
$xoopsMailer->assign('SITEURL', XOOPS_URL."/");
$xoopsMailer->assign('TO_USER_NAME', $to_user_name);
$xoopsMailer->assign('FROM_USER_NAME', $from_user_name);
$xoopsMailer->assign('FROM_USER_UNAME', $from_user_uname);
$xoopsMailer->assign('MSG_TEXT', $msg_text);
$xoopsMailer->assign('SUBJECT', $subject);
$xoopsMailer->setToUsers($to_user_uname);
$xoopsMailer->setToEmails($to_user_email);
$xoopsMailer->setFromEmail($xoopsConfig['adminmail']);
$xoopsMailer->setFromName($xoopsConfig['sitename']);
$xoopsMailer->setSubject("あなたの受信箱にメッセージがありました");
if ( !$xoopsMailer->send() ) {
} else {
}
Re: 受信箱に通知があったらメールしたい
Re: 受信箱に通知があったらメールしたい
投稿者: Ujiki | 投稿日時: 2006-10-7 7:13
引用:
wanisys.netさんの
http://xoopscube.jp/modules/mydownloads/singlefile.php?cid=8&lid=153
のハック版を、 Cube 2.0.16a JP で利用しています。
保存だけでなく、送信先の相手が「未読」状態なのか、「既読または削除」されたかも知ることができて便利です。
UTF-8で良ければ、Cube 2.0.16a JPへの上書き用のアーカイブを置いてます。(但し利用にはPMテーブルのALTERが必須です)
http://hamster.byethost31.com/modules/myalbum/photo.php?com_mode=flat&com_order=1&lid=25
vitaminさんは書きました:
あと、この受信箱、実際には
送信箱や保存などもないので、かわりになる
モジュールとかは存在しないのでしょうか。
wanisys.netさんの
http://xoopscube.jp/modules/mydownloads/singlefile.php?cid=8&lid=153
のハック版を、 Cube 2.0.16a JP で利用しています。
保存だけでなく、送信先の相手が「未読」状態なのか、「既読または削除」されたかも知ることができて便利です。
UTF-8で良ければ、Cube 2.0.16a JPへの上書き用のアーカイブを置いてます。(但し利用にはPMテーブルのALTERが必須です)
http://hamster.byethost31.com/modules/myalbum/photo.php?com_mode=flat&com_order=1&lid=25


