Не приходят уведомления при массовой рассылке

 
Sometime CMS Community
Посетитель
no avatar
Сообщений: 19
Почему-то когда пользователи получают ЛС - сообщения на емаил тоже приходят, а когда я отправляю сообщения всем в массовом порядке - то никаких уведомлений на емаил нет.
Подскажиет: это я где-то что-то должна настроить или в коде разбираться и дописывать?
Sometime CMS Community
Посетитель
no avatar
Медаль
Сообщений: 130
скорей всего это настройки сервера)))
Реклама
cms
Sometime CMS Community
Посетитель
no avatar
Сообщений: 19
koks:

скорей всего это настройки сервера)))

но о единичных личных приходят же ..!?
Sometime CMS Community
Посетитель
no avatar
Медаль
Сообщений: 130
Обратись к хостеру, узнай какое ограничение на расслку писем у него стоит
Sometime CMS Community
Посетитель
no avatar
Сообщений: 19
Как-то пришлось отвлечься от этого вопроса ... но он так и не решился:
у хостера ограничение на 300 писем, а у меня всего чуток - 50
Таким образом дело не в хостинге ...
В личку приходят, а уведомлений на e-mail так и нет (((
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1551
golf:

В личку приходят, а уведомлений на e-mail так и нет (((
а у вас стоит что надо уведомлять обеими способами или не стоит, в настройках?
кто как в профиле настроит, у того так и будет
Редактировалось: 1 раз (Последний: 12 июля 2010 в 13:03)
Ну типа продвигаю сайты, по немногу и не напрягаясь. smile
Sometime CMS Community
Посетитель
no avatar
Сообщений: 19
Anonimus, Нет, не то ... (((((
А в коде где посмотреть этот момент: когда отправляются уведомления?
Пожалуйста, подскажите кто знает или догадывается ! angel
Редактировалось: 1 раз (Последний: 13 июля 2010 в 03:21)
Модератор
small user social cms
МедальМедаль за отзывчивостьКубок зрительских симпатий
Сообщений: 435
скорей всего это настройки сервера)))

но о единичных личных приходят же ..!?

Ребята, чего гадать??? При массовой рассылке уведомления на почту не приходят! Двиг не умеет делать этого!
Причем тут сервер!
Модератор
small user social cms
МедальМедаль за отзывчивостьКубок зрительских симпатий
Сообщений: 435
Пожалуйста, подскажите кто знает или догадывается !

Открываем components\users\frontend.php и ищем строки

Код PHP:
  1. /////////////////////////////// SEND MESSAGE ////////////////
  2. if ($do=='sendmessage'){
  3.  
  4. ...........
  5. .......................
  6. .............................
  7.  
  8. if (!isset($_POST['massmail'])){
  9. //send private message
  10. $sql = "INSERT INTO cms_user_msg (to_id, from_id, senddate, is_new, message)
  11. VALUES ('$to_id', '$from_id', NOW(), 1, '$message')";
  12. $inDB->query($sql) ;
  13.  
  14. $msg_id = dbLastId('cms_user_msg');
  15.  
  16. //send email notification, if user want it
  17. $needmail = dbGetField('cms_user_profiles', "user_id='{$to_id}'", 'email_newmsg');
  18. //Проверяем, если юзер онлайн, то уведомление на почту не отправляем.
  19. $isonline = dbGetField('cms_online', "user_id='{$to_id}'", 'id');
  20. if (!$isonline){
  21. if ($needmail){
  22. $inConf = cmsConfig::getInstance();
  23.  
  24. $postdate = date('d/m/Y H:i:s');
  25. $to_email = dbGetField('cms_users', "id='{$to_id}'", 'email');
  26. $from_nick = dbGetField('cms_users', "id='{$from_id}'", 'nickname');
  27. $answerlink = HOST.'/users/'.$from_id.'/reply'.$msg_id.'.html';
  28.  
  29. $letter_path = PATH.'/includes/letters/newmessage.txt';
  30. $letter = file_get_contents($letter_path);
  31.  
  32. $letter= str_replace('{sitename}', $inConf->sitename, $letter);
  33. $letter= str_replace('{answerlink}', $answerlink, $letter);
  34. $letter= str_replace('{date}', $postdate, $letter);
  35. $letter= str_replace('{from}', $from_nick, $letter);
  36. $inCore->mailText($to_email, $_LANG['YOU_HAVE_NEW_MESS'].'! - '.$inConf->sitename, $letter);
  37. }
  38. }
  39. } else {
  40. if ($inUser->is_admin){
  41. $userlist = dbGetTable('cms_users', ' id > 0 AND is_locked = 0 AND is_deleted = 0');
  42. foreach ($userlist as $key=>$usr){
  43. $sql = "INSERT INTO cms_user_msg (to_id, from_id, senddate, is_new, message)
  44. VALUES ('".$usr['id']."', '-2', NOW(), 1, '$message')";
  45. $inDB->query($sql) ;
  46. }
  47. }
  48. }
  49.  
  50.  
  51. ..................................
  52. ............................
  53. ..............
  54.  

Всмотрись в код и подумай!

Хватит. Вот решение.

Замени текст выше на этот. Можешь отредактировать /includes/letters/newmessage.txt или создать свой (newmessage2.txt)
А в нем написать: Письмо пришло от злобного Админа: Или другое...

Код PHP:
  1. if (!isset($_POST['massmail'])){
  2. //send private message
  3. $sql = "INSERT INTO cms_user_msg (to_id, from_id, senddate, is_new, message)
  4. VALUES ('$to_id', '$from_id', NOW(), 1, '$message')";
  5. $inDB->query($sql) ;
  6.  
  7. $msg_id = dbLastId('cms_user_msg');
  8.  
  9. //send email notification, if user want it
  10. $needmail = dbGetField('cms_user_profiles', "user_id='{$to_id}'", 'email_newmsg');
  11. //Проверяем, если юзер онлайн, то уведомление на почту не отправляем.
  12. $isonline = dbGetField('cms_online', "user_id='{$to_id}'", 'id');
  13. if (!$isonline){
  14. if ($needmail){
  15. $inConf = cmsConfig::getInstance();
  16.  
  17. $postdate = date('d/m/Y H:i:s');
  18. $to_email = dbGetField('cms_users', "id='{$to_id}'", 'email');
  19. $from_nick = dbGetField('cms_users', "id='{$from_id}'", 'nickname');
  20. $answerlink = HOST.'/users/'.$from_id.'/reply'.$msg_id.'.html';
  21.  
  22. $letter_path = PATH.'/includes/letters/newmessage.txt';
  23. $letter = file_get_contents($letter_path);
  24.  
  25. $letter= str_replace('{sitename}', $inConf->sitename, $letter);
  26. $letter= str_replace('{answerlink}', $answerlink, $letter);
  27. $letter= str_replace('{date}', $postdate, $letter);
  28. $letter= str_replace('{from}', $from_nick, $letter);
  29. $inCore->mailText($to_email, $_LANG['YOU_HAVE_NEW_MESS'].'! - '.$inConf->sitename, $letter);
  30. }
  31. }
  32. } else {
  33. if ($inUser->is_admin){
  34. $userlist = dbGetTable('cms_users', ' id > 0 AND is_locked = 0 AND is_deleted = 0');
  35. foreach ($userlist as $key=>$usr){
  36. $sql = "INSERT INTO cms_user_msg (to_id, from_id, senddate, is_new, message)
  37. VALUES ('".$usr['id']."', '-2', NOW(), 1, '$message')";
  38. $inDB->query($sql) ;
  39. $msg_id = dbLastId('cms_user_msg');
  40. //send email notification, if user want it
  41. $needmail = dbGetField('cms_user_profiles', "user_id='".$usr['id']."'", 'email_newmsg');
  42. //Проверяем, если юзер онлайн, то уведомление на почту не отправляем.
  43. $isonline = dbGetField('cms_online', "user_id='".$usr['id']."'", 'id');
  44. if (!$isonline){
  45. if ($needmail){
  46. $inConf = cmsConfig::getInstance();
  47.  
  48. $postdate = date('d/m/Y H:i:s');
  49. $to_email = dbGetField('cms_users', "id='".$usr['id']."'", 'email'); //Кому
  50. $from_nick = 'Администратор'; //От кого
  51. $answerlink = HOST; //Ссылка
  52.  
  53. $letter_path = PATH.'/includes/letters/newmessage.txt'; //Текст сообщения
  54. $letter = file_get_contents($letter_path);
  55.  
  56. $letter= str_replace('{sitename}', $inConf->sitename, $letter);
  57. $letter= str_replace('{answerlink}', $answerlink, $letter);
  58. $letter= str_replace('{date}', $postdate, $letter);
  59. $letter= str_replace('{from}', $from_nick, $letter);
  60. $inCore->mailText($to_email, $_LANG['YOU_HAVE_NEW_MESS'].'! - '.$inConf->sitename, $letter);
  61. }
  62. }
  63.  
  64. }
  65. }
  66. }
  67.  
Посетитель
small user social cms
Медаль
Сообщений: 125
Александр:

Пожалуйста, подскажите кто знает или догадывается !

Открываем components\users\frontend.php и ищем строки

Код PHP:
  1. /////////////////////////////// SEND MESSAGE ////////////////
  2. if ($do=='sendmessage'){
  3.  
  4. ...........
  5. .......................
  6. .............................
  7.  
  8. if (!isset($_POST['massmail'])){
  9. //send private message
  10. $sql = "INSERT INTO cms_user_msg (to_id, from_id, senddate, is_new, message)
  11. VALUES ('$to_id', '$from_id', NOW(), 1, '$message')";
  12. $inDB->query($sql) ;
  13.  
  14. $msg_id = dbLastId('cms_user_msg');
  15.  
  16. //send email notification, if user want it
  17. $needmail = dbGetField('cms_user_profiles', "user_id='{$to_id}'", 'email_newmsg');
  18. //Проверяем, если юзер онлайн, то уведомление на почту не отправляем.
  19. $isonline = dbGetField('cms_online', "user_id='{$to_id}'", 'id');
  20. if (!$isonline){
  21. if ($needmail){
  22. $inConf = cmsConfig::getInstance();
  23.  
  24. $postdate = date('d/m/Y H:i:s');
  25. $to_email = dbGetField('cms_users', "id='{$to_id}'", 'email');
  26. $from_nick = dbGetField('cms_users', "id='{$from_id}'", 'nickname');
  27. $answerlink = HOST.'/users/'.$from_id.'/reply'.$msg_id.'.html';
  28.  
  29. $letter_path = PATH.'/includes/letters/newmessage.txt';
  30. $letter = file_get_contents($letter_path);
  31.  
  32. $letter= str_replace('{sitename}', $inConf->sitename, $letter);
  33. $letter= str_replace('{answerlink}', $answerlink, $letter);
  34. $letter= str_replace('{date}', $postdate, $letter);
  35. $letter= str_replace('{from}', $from_nick, $letter);
  36. $inCore->mailText($to_email, $_LANG['YOU_HAVE_NEW_MESS'].'! - '.$inConf->sitename, $letter);
  37. }
  38. }
  39. } else {
  40. if ($inUser->is_admin){
  41. $userlist = dbGetTable('cms_users', ' id > 0 AND is_locked = 0 AND is_deleted = 0');
  42. foreach ($userlist as $key=>$usr){
  43. $sql = "INSERT INTO cms_user_msg (to_id, from_id, senddate, is_new, message)
  44. VALUES ('".$usr['id']."', '-2', NOW(), 1, '$message')";
  45. $inDB->query($sql) ;
  46. }
  47. }
  48. }
  49.  
  50.  
  51. ..................................
  52. ............................
  53. ..............
  54.  

Всмотрись в код и подумай!

Хватит. Вот решение.

Замени текст выше на этот. Можешь отредактировать /includes/letters/newmessage.txt или создать свой (newmessage2.txt)
А в нем написать: Письмо пришло от злобного Админа: Или другое...

Код PHP:
  1. if (!isset($_POST['massmail'])){
  2. //send private message
  3. $sql = "INSERT INTO cms_user_msg (to_id, from_id, senddate, is_new, message)
  4. VALUES ('$to_id', '$from_id', NOW(), 1, '$message')";
  5. $inDB->query($sql) ;
  6.  
  7. $msg_id = dbLastId('cms_user_msg');
  8.  
  9. //send email notification, if user want it
  10. $needmail = dbGetField('cms_user_profiles', "user_id='{$to_id}'", 'email_newmsg');
  11. //Проверяем, если юзер онлайн, то уведомление на почту не отправляем.
  12. $isonline = dbGetField('cms_online', "user_id='{$to_id}'", 'id');
  13. if (!$isonline){
  14. if ($needmail){
  15. $inConf = cmsConfig::getInstance();
  16.  
  17. $postdate = date('d/m/Y H:i:s');
  18. $to_email = dbGetField('cms_users', "id='{$to_id}'", 'email');
  19. $from_nick = dbGetField('cms_users', "id='{$from_id}'", 'nickname');
  20. $answerlink = HOST.'/users/'.$from_id.'/reply'.$msg_id.'.html';
  21.  
  22. $letter_path = PATH.'/includes/letters/newmessage.txt';
  23. $letter = file_get_contents($letter_path);
  24.  
  25. $letter= str_replace('{sitename}', $inConf->sitename, $letter);
  26. $letter= str_replace('{answerlink}', $answerlink, $letter);
  27. $letter= str_replace('{date}', $postdate, $letter);
  28. $letter= str_replace('{from}', $from_nick, $letter);
  29. $inCore->mailText($to_email, $_LANG['YOU_HAVE_NEW_MESS'].'! - '.$inConf->sitename, $letter);
  30. }
  31. }
  32. } else {
  33. if ($inUser->is_admin){
  34. $userlist = dbGetTable('cms_users', ' id > 0 AND is_locked = 0 AND is_deleted = 0');
  35. foreach ($userlist as $key=>$usr){
  36. $sql = "INSERT INTO cms_user_msg (to_id, from_id, senddate, is_new, message)
  37. VALUES ('".$usr['id']."', '-2', NOW(), 1, '$message')";
  38. $inDB->query($sql) ;
  39. $msg_id = dbLastId('cms_user_msg');
  40. //send email notification, if user want it
  41. $needmail = dbGetField('cms_user_profiles', "user_id='".$usr['id']."'", 'email_newmsg');
  42. //Проверяем, если юзер онлайн, то уведомление на почту не отправляем.
  43. $isonline = dbGetField('cms_online', "user_id='".$usr['id']."'", 'id');
  44. if (!$isonline){
  45. if ($needmail){
  46. $inConf = cmsConfig::getInstance();
  47.  
  48. $postdate = date('d/m/Y H:i:s');
  49. $to_email = dbGetField('cms_users', "id='".$usr['id']."'", 'email'); //Кому
  50. $from_nick = 'Администратор'; //От кого
  51. $answerlink = HOST; //Ссылка
  52.  
  53. $letter_path = PATH.'/includes/letters/newmessage.txt'; //Текст сообщения
  54. $letter = file_get_contents($letter_path);
  55.  
  56. $letter= str_replace('{sitename}', $inConf->sitename, $letter);
  57. $letter= str_replace('{answerlink}', $answerlink, $letter);
  58. $letter= str_replace('{date}', $postdate, $letter);
  59. $letter= str_replace('{from}', $from_nick, $letter);
  60. $inCore->mailText($to_email, $_LANG['YOU_HAVE_NEW_MESS'].'! - '.$inConf->sitename, $letter);
  61. }
  62. }
  63.  
  64. }
  65. }
  66. }
  67.  

Это решение видимо для 1.7. Для 1.8. оно не подходит. Там строчки другие...
Есть у кого решение? Заранее, спасибо
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.