Связь с администратором сайта.

Форма обратной связи.

Форма обратной связи с администратором ресурса является непременным атрибутом сайта, и обычно не имеет никаких особенностей. Однако в Nano-CMS этот функционал несколько своеобразен, про что следует сказать пару слов.

Локальное сохранение писем.

E-mail протокол не является гарантированным средством доставки. Больше половины E-mail трафика составляет спам, фильтрующийся сразу на нескольких уровнях (сендер хостера, почтовый сервер адресата, фильтры e-mail клиента). Причём фильтруется алгоритмически, и не всегда корректно. То есть любое письмо способно погибнуть по непонятным причинам в любой точке своего пути.

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

Давайте вспомним про записи администраторов файла настроек:

         'admin'  => array(
            
'master' => array(
               
'login'  => 'MasterAdminLogin',
               
'passw'  => 'MasterAdminPassword',
               
'folder' => 'all',
            ),
            
'user' => array(
               
'login'  => 'UserOneLogin',
               
'passw'  => 'UserOnePassword',
               
'folder' => array('/a/','/b/',),
            ),
         ),

Имена администраторов master и user могут упоминаться в любой комбинации в другом месте файла настроек, относящегося как раз к управлению формой обратной связи:

      'connect'   => array(
         
'admins' => array('master'),

В данной записи доступ к локально сохранённым письмам пользователей имеет администратор с именем master. Чтобы открыть доступ к чтению пользовательских писем и второму администратору, очевидно, надо дописать в массив его имя:

      'connect'   => array(
         
'admins' => array('master','user'),

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

Отправка сообщений пользователя администратору.

Такой администратор всего один, и задаётся в том же месте файла настроек:

      'connect'   => array(
         
'admins' => array('master'),
         
'mail'   => 'user@site.nu',

Естественно, E-mail адрес надо заменить собственным.

На сервере заблокирован e-mail протокол.

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

Иногда администратор сайта и сам не хочет автоматически отправлять письма пользователей на свой e-mail. Тут соображений может быть много, в том числе и вполне здравых. Надо дать администратору такую возможность.

Она есть. Достаточно указать e-mail адресом то, что им не является. Например, так:

      'connect'   => array(
         
'admins' => array('master'),
         
'mail'   => 'disabled',

Письма будут накапливаться локально, но отсылаться не станут.

Защита от неправомочных действий.

Несколько ниже в коде файла настроек встретятся такие записи:

         'wait'   => 10,               # Письмо пишем дольше 10 сек.
         
'maxl'   => 3,                # Сколько посетитель может написать писем в час.
         
'maxi'   => 10,               # Суета с этого IP (хитов/час) прячет эту форму.

Понимать их следует таким образом:

  1. Задержка заполнения формы обратной связи wait позволяет пресечь деятельность автоматических спам-ботов, вносящих информацию в формы сайта слишком быстро. Человек на вписывание буковок в поля потратит по крайней мере несколько десятков секунд. Всё, что работает молниеносно, человеком не является.

  2. Ограничитель писем в час maxl служит той же цели - незачем живому человеку сидеть и строчить письма десятками. Живой человек этого делать не будет. Тот, кто так поступает, не живой, или не человек.

  3. Ограничение по айпишнику является вариацией предыдущей мысли, и реализуется посредством настройки maxi