Skip to content

Важное с Sysman.Ru: Дублируются темы

Song: Симптомы: На форуме появляются дубликаты тем, при этом пользователи при создании новой темы или отправке ответа жалуются на сообщение об ошибке:

Цитата
Mail Error!

Could not send the email

Failed at 'mail' command

 

Причина: Дубликаты тем оставляет не форум, а сами пользователи, когда видят фатальное сообщение об ошибке, приведённое выше.

При этом они думают, что тема не создалась, нажимают в браузере "Назад" и снова сохраняют тему. Так появляется клон темы.

Дубликатов может быть столько, пока это им не надоест делать.

 

Ошибка происходит из-за того, что у пользователей на раздел или на тему есть подписки на email, а из-за неверной настройки smtp сервиса у вашего хостера, команда, которая посылает уведомление о теме/ответе на email, не срабатывает. На момент попытки отсылки email уведомлений тема уже создана. Но при ошибке форум останавливается и не редиректится на созданную тему.

 

Ошибка срабатывает в следующих случаях:

  • При создании темы. Если на раздел есть подписанные на email пользователи.
  • При ответе в тему. Если на тему есть подписанные на email пользователи.
  • При отправке в PM. Если у того, кому отправляем, установлена опция отправки копии PM сообщения на email.

А также в других ваших модах, которые используют любую из этих функций.

 

 

Решение: решением может быть только устранение неполадок в отправлении email сообщений у вашего хостера.

Как вариант, чтобы темы не плодились, можно временно отключить отсылку уведомлений. Для этого выполните 3 правки ниже. Кусочки, выделенные цветом, нужно вставить в ваш код форума:

 

1.

Цитата (Post.php)
        [color=green]/*****************************************************/[/color]        [color=green]// topic tracker[/color]        [color=green]// ------------------[/color]        [color=green]// Checks and sends out the emails as needed.[/color]        [color=green]/*****************************************************/[/color]        [b]function[/b] topic_tracker([color=#048284]$tid[/color]="", [color=#048284]$post[/color]="", [color=#048284]$poster[/color]="", [color=#048284]$last_post[/color]="" )        {                [b]global[/b] [color=#048284]$ibforums[/color], [color=#048284]$DB[/color], [color=#048284]$std[/color];                [color=green]// Song * debug[/color]                [b]return[/b] TRUE;                [b]if[/b] ([color=#048284]$tid[/color] == "")                {                        [b]return[/b] TRUE;                }

2.

Цитата (Post.php)
        [color=green]/*****************************************************/[/color]        [color=green]// Forum tracker[/color]        [color=green]// ------------------[/color]        [color=green]// Checks and sends out the new topic notification if[/color]        [color=green]// needed[/color]        [color=green]/*****************************************************/[/color]		        [b]function[/b] forum_tracker([color=#048284]$fid[/color]="", [color=#048284]$this_tid[/color]="", [color=#048284]$title[/color]="", [color=#048284]$forum_name[/color]="")        {                [b]global[/b] [color=#048284]$ibforums[/color], [color=#048284]$DB[/color], [color=#048284]$std[/color];                [color=green]// Song * debug[/color]                [b]return[/b] TRUE;                [b]if[/b] ([color=#048284]$this_tid[/color] == "")                {                        [b]return[/b] TRUE;                }

 

3.

Цитата (Messenger.php)
            [color=green]//-----------------------------------------------------[/color]            [color=green]// Has this member requested a PM email nofity?[/color]            [color=green]//-----------------------------------------------------[/color]                        [b]if[/b] ([color=#048284]$to_member[/color]['email_pm'] == 1)            {                [color=#048284]$to_member[/color]['language'] = [color=#048284]$to_member[/color]['language'] == "" ? 'en' : [color=#048284]$to_member[/color]['language'];                                [color=#048284]$this[/color]->email->get_template("pm_notify", [color=#048284]$to_member[/color]['language']);                            [color=#048284]$this[/color]->email->build_message( [b]array[/b](                                                    'NAME'   => [color=#048284]$to_member[/color]['name'],                                                    'POSTER' => [color=#048284]$ibforums[/color]->member['name'],                                                    'TITLE'  => [color=#048284]$ibforums[/color]->input['msg_title'],                                                    'LINK'   => "?act=Msg&CODE=03&VID=in&MSID=$new_id",                                                  )                                            );                                                            [color=#048284]$this[/color]->email->subject = [color=#048284]$ibforums[/color]->lang['pm_email_subject'];                [color=#048284]$this[/color]->email->to      = [color=#048284]$to_member[/color]['email'];                [color=green]//Song * debug[/color]                $this->email->send_mail();

 

После восстановления сервиса отправки email проделайте обратную операцию.

 

Featured Replies

No posts to show
Guest
This topic is now closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.