The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Exim и CRAM-MD5"
Отправлено Constantine A.Yarovoy, 12-Сен-06 19:43 
Уважаемая публика,

давно не могу справиться с задачкой по Exim'u.
Система такая:

я представляю организацию ISP. Мы в частности хостим сайты и поддерживаем почтовые домены.
есть exim, поддерживаются виртуальные домены.
Данные о доменах, логинах и паролях пользователей лежат в базе mysql.
Необходимо сделать так, чтобы отправлять почту через этот mail сервер можно было только по 465 порту (smtps) и к тому же только если была произведена SMTP авторизация. И только в таком случае, письмо может быть отправлено.

Итак если алгоритмично представить задачу, то:

1. Если у пользователя в почтовом клиенте стоит 25 порт, то при отправке ему должен быть показан болт. (т.к. разрешено отправлять через 465).

2. Если у пользователя в почтовом клиенте стоит 265 порт, но не сказано, что необходима SMTP авторизация, то ему также должен быть показан болт.

3. Если у него в настройках 465 порт и стоит SMTP авторизация, и она прошла успешно, то тогда письмо отправляется.

Я понял из своего опыта и чтения статей в тырнете, что 3 пункт реализуется добавлением аутентификаторов:

begin authenticators

auth_login:
  driver                     = plaintext
  public_name                = LOGIN
  server_condition           = ${lookup mysql{SELECT login FROM users \
                                 WHERE login = '${quote_mysql:${local_part:$1}}' \
                                 AND domain = '${quote_mysql:${domain:$1}}' \
                                 AND decrypt = '${quote_mysql:$2}' \
                                 AND status = '1'}{yes}{no}}
  server_prompts             = Username:: : Password::
server_set_id                = $1

auth_cram_md5:
  driver                     = cram_md5
  public_name                = CRAM-MD5
  server_secret              = ${lookup mysql{SELECT decrypt FROM users \
                                 WHERE login = '${quote_mysql:${local_part:$1}}' \
                                 AND domain = '${quote_mysql:${domain:$1}}' \
                                 AND status = '1'}{$value}fail}
server_set_id                = $1

Как видите, я написал 2 аутентификатора для Outlook Express и TheBat, т.к. у них разные типы SMTP авторизации.

Для справки, данные пользователей в следующих полях таблицы:

пароль: decrypt
логин:  login

Теперь осталось понять, как реализовать 1,2 пункты моего "алгоритма". Помогите, если кто-либо делал подобное.

Буду очень благодарен

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру