Обратите внимание, что ссылка на страницу является активной, если ваш почтовый клиент поддерживает это.

Это дает полный URL-адрес вики-страницы, поэтому получатель может просто щелкнуть

сообщение, чтобы увидеть обновленную страницу. Присвоение каждой вики отличительного имени

настройка главной страницы по умолчанию, как обсуждалось ранее, позволяет сообщению информировать

получатель (потому что он уже указан в строке темы сообщения), какая вики

уведомление относится к.

Предполагая, что вы можете использовать адреса электронной почты на основе названий вики, вы можете

дополнительно получать и фильтровать любые сообщения об ошибках, возникающие в результате невозможности доставки

электронные письма. В противном случае адрес «От» должен быть определен как действительный.

Наконец, в качестве отладочной и информативной помощи обработка отображает данные получателя.

адрес электронной почты на экране пользователя. Это подтверждает действие уведомления.

Подписка пользователя на уведомление

В качестве последней части этой темы уведомлений рассмотрите возможность разрешить пользователям

подписаться на уведомления с определенных страниц. Это может быть

автоматически или, лучше, совместно с флажком, позволяющим человеку

редактирование, чтобы решить, когда уведомление актуально. В противном случае это будет похоже на спам

заливать подписчиков уведомлениями об изменениях для простых исправлений или другой мелочи,

множественные правки.

Что нужно? Предыдущую процедуру уведомления об изменении можно использовать как есть.

предполагая, что мы локально переопределяем $NotifyEmail как адрес каждого подписчика по очереди.

Эти адреса должны быть в доступном месте.


ВЗЛОМ ВАШЕГО ИСТОЧНИКА WIKI

177

Наиболее очевидное расположение — на самой странице с использованием специального синтаксиса; для

например, Notify!me@my.com. Это должно быть проанализировано при сохранении, что делает

расширенная секция замены сейчас обсуждается как наиболее вероятное место. В этом случае,

однако в исходнике ничего не подменяется — мы просто ищем волшебное

шаблон, из которого можно извлечь адрес электронной почты и запустить sendmail.

Парсинг достаточно прост, хотя код может показаться непонятным. Этот пример

также показывает, как генерируются переданные строки.

# -v- уведомления, несколько экземпляров

мой @nfyUrl; мой $nfy = 0;

в то время как ( s/(Уведомить!)(\S+)/$mark$nfy$mark/

$nfyUrl[$nfy++] = $2

}

) {

локальный $NotifyEmail; # это глобальная переменная для ChangeNotification

мой $trace = "$ENV{REMOTE_USER} $ENV{REMOTE_ADDR}

$ENV{REM0TE_H0ST}";

мой $log = "был изменен на $ds в $ts пользователем \" $$page{LastEdit} \" (

$трассировка)";

$nfy = 0;

в то время как ( s/$mark$nfy$mark/Notify!$nfyUrl[$nfy]/ ) {

$NotifyEmail = $nfyUrl[$nfy++] ; # для каждого экземпляра

&ChangeNotification($title, $log)

}