Здравсвтвуйте!
Проблема такая: Пользователи жалуются, что на e-mail приходит куча уведомлений об ответах, а ответ только один. Иногда приходит 4 и более уведомлений на тему, а ответов новых и нет вовсе.
Что делать?
Как исключить дублирование писем при подписке
(устраняем повторную подписку на тему)
в post.cgi
в sub addreply {
меняем
Код: $filetoopen = "$ikondir" . "forum$inforum/$intopic.mal"; open (FILE, "$filetoopen"); @maildata = <FILE>; close (FILE); if ($innotify eq "yes") { open (FILE, ">$filetoopen"); flock (FILE, 2); print FILE "$inmembername|$emailaddress\n"; foreach $line (@maildata) { chomp $line; print FILE "$line\n"; } close (FILE); } |
на
Код: $filetoopen = "$ikondir" . "forum$inforum/$intopic.mal"; open (FILE, "$filetoopen"); @maildata = <FILE>; close (FILE); if ($innotify eq "yes") { $ok_mail = ""; $changemail = "no"; foreach $line_m (@maildata) { chomp $line_m; ($nick_m,$mail_m) = split(/\|/,$line_m); if (($inmembername eq $nick_m) && ($mail_m eq $emailaddress)) {$ok_mail = "1"; $changemail = "no"; last;} if (($inmembername eq $nick_m) && ($mail_m ne $emailaddress)) {$changemail = "yes"; last;} } #end foreach if (!$ok_mail) { open (FILE, ">$filetoopen"); flock (FILE, 2); if ($changemail eq "no") { print FILE "$inmembername|$emailaddress\n"; foreach $line (@maildata) { print FILE "$line"; } } else { foreach $line (@maildata) { chomp $line; ($nick_m,$mail_m) = split(/\|/,$line); if ($nick_m eq $inmembername) {print FILE "$inmembername|$emailaddress\n";} else {print FILE "$line\n";} } } close (FILE); } } #end if $innotify |