## Please edit system and help pages ONLY in the master wiki!
## For more information, please see MoinMoin:MoinDev/Translation.
##master-page:HelpOnMacros/MailTo
##master-date:2011-01-27T19:36:46Z
#acl -All:write Default
#format wiki
#language ru

<<Navigation(siblings)>>

= Макрокоманда MailTo =

<<TableOfContetnts>>

Использование макрокоманды `MailTo` позволяет размещать почтовый адрес на вики способом, препятствующим его автоматическому распознанию спам-ботом (роботом, собирающим почтовые адреса).

== Использование ==

`<<MailTo(почтовый DOT адрес AT домен DOT ru)>>`

или 

`<<MailTo(почтовый DOT адрес AT домен DOT ru, текст ссылки)>>`

== Что делает эта макрокоманда? ==

Разделаются аутентифицированные и неаутентифицированные пользователи (в число последних входят спам-боты).

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

Неаутентифицированные же пользователи бывают разные — как легитимные пользователи, так и те (например, спам-боты), кто занимается сбором почтовых адресов для рассылки непрошеной коммерческой рекламы (это весьма насущная проблема в интернете).

=== Аутентифицированные пользователи ===

Аутентифицированные пользователи увидят следующее:
 имя.пользователя@домен.ru

Таким образом, им будет предоставлен читаемый и доступный для перехода адрес по протоколу `mailto:`. 

=== Неаутентифицированные пользователи ===

Неаутентифициованные пользователи (в том числе спам- и прочие боты) увидят необработанный текст, переданный в качестве аргумента, переданного макрокоманде

 имя DOT пользователя AT домен DOT ru

Чистый текст, без ссылки `mailto:`. Человек может прочитать его и использовать в почтовом клиенте вручную. Но бот, вероятно, не сможет ничего сделать с ним и, вероятно, пропустит его (кроме случаев достаточно интеллектуальных ботов, подробнее см. ниже); таким образом, макрокоманда выполнит своё предназначение, позволив избежать (увеличения количества) спама.

== Схема работа макрокоманды и некоторые примеры ==

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

В случае аутентифицированного пользователя, макрокоманда обрабатывает текст аргумента следующим образом:
 1. Слова, состоящие из заглавных букв, заменяются следующим образом
  || AT   || `@` ||
  || DOT  || `.` ||
  || DASH || `-` ||
 1. Прочие слова, набранные заглавными символами, например, «НЕТСПАМУ», «НЕТ СПАМУ», «ЧТО УГОДНО», «Я НЕ ХОЧУ ПОЛУЧАТЬ СПАМ» и т. д., будут опущены (заменены на пустую строку).
 1. Пробельные символы удаляются
 1. Генерируется рабочая ссылка `mailto:`

разумеется, существует вероятность, что интеллектуальный спам-бот распознаёт типичные способы защиты от спама, в том числе, использование слов «AT», «DOT», «НЕТ СПАМУ» и корректно их обработает. Вероятность подобного уменьшается при добавлении других (обычных) слов и пробельных символов. Вероятность того, что спам-бот распознает адрес в этом случае, очень и очень низка (кроме случаев, когда он заточен под обход вики на МойнМойн).

Можно оценить эффект использования макрокоманды `MailTo` на следующих примерах (сравнивая результат для аутентифицированных и неаутентифицированных пользователей):

||<rowbgcolor="#ffffcc"> '''Разметка'''                                  || '''Результат'''                                                     ||
|| `<<MailTo(имя DOT пользователя AT домен DOT ru)>>`                    || <<MailTo(имя DOT пользователя AT домен DOT ru)>>                    ||
|| `<<MailTo(имя . пользователя AT до м ен DOT r u)>>`                   || <<MailTo(имя . пользователя AT до м ен DOT r u)>>                   ||
|| `<<MailTo(имя Я НЕ ХОЧУ ПОЛУЧАТЬ СПАМ . пользователя@домен DOT ru)>>` || <<MailTo(имя Я НЕ ХОЧУ ПОЛУЧАТЬ СПАМ . пользователя@домен DOT ru)>> ||
|| `<<MailTo(и мя DOT Я пользователя НЕ AT ХОЧУ СПАМ домен DOT r u>>`    || <<MailTo(и мя DOT Я пользователя НЕ AT ХОЧУ СПАМ домен DOT r u)>>    ||
|| `<<MailTo(имя DOT пользователя AT домен DOT ru, "Сам себе я")>>`      || <<MailTo(имя DOT пользователя AT домен DOT ru, "Сам себе я")>>      ||

(!) Возможность добавлять слова в верхнем регистре затрудняет прочтение адреса как для ботов, так и для людей. Если адрес будет достаточно сложным для прочтения человеком, то он не сможет связаться с обладателем почтового ящика.