Добрый день.
Я уже всю голову сломал, никак не могу победить, а информации не много по этому вопросу...
У меня две проблемы.
Первая: не могу победить аутентификацию на сервере. Вот мои аутентификаторы:
PLAIN:
driver = dovecot
public_name = PLAIN
server_set_id = $auth1
server_socket = /var/run/dovecot/auth-client
server_advertise_condition = ${if def:tls_cipher }
LOGIN:
driver = dovecot
public_name = LOGIN
server_set_id = $auth1
server_socket = /var/run/dovecot/auth-client
server_advertise_condition = ${if def:tls_cipher }
При отправке сообщения из thunderbird - оно отлично уходит и доставляется до получателя. Проблема возникает при попытке отправить сообщения с некоторых сайтов, написанных, например, на opencart. Я создаю учётную запись, ввожу настройки на сайте и, какой бы тип шифрования я не выбрал - возникает ошибка:
auth command used when not advertised
Собственно, если прителнетиться к 25 порту (и то же самое, если сделать gnutls-cli --verbose --starttls -p 587 $server) и набрать EHLO - нет команды AUTH в списке. Затем набираем STARTTLS, получаем сертификат. Снова EHLO - всё так же нет AUTH... Возможно, проблема с отправкой с сайта на opencart в этом.
Это связано с server_advertise_condition - если поставить её равной *, то AUTH появляется в списке. Но не стоит ведь разрешать аутентификацию, если соединение не зашифровано! Так нельзя!
Есть ещё один параметр server_condition. Если его настроить, например так:
server_condition = ${lookup mysql{SELECT `username` FROM `users` WHERE `username` = '${quote_mysql:$auth2}' AND `passwd` = '${quote_mysql:$auth3}' AND `active` = '1'}{yes}{no}}
то аутентификация начинает работать почти правильно: пишем EHLO, получаем список, в котором нет AUTH, вводим STARTTLS, снова EHLO - появляется AUTH PLAIN LOGIN - отлично? Нет! После этого из thunderbird нельзя отправить сообщение. Вот часть лога:
11:42:57 731 $auth1 = admin@example.ru
11:42:57 731 $1 = admin@example.ru
11:42:57 731 expanding: $auth2
11:42:57 731 result:
11:42:57 731 expanding: $auth3
11:42:57 731 result:
11:42:57 731 expanding: SELECT `username` FROM `users` WHERE `username` = '${quote_mysql:$auth2}' AND `passwd` = '${quote_mysql:$auth3}' AND `active` = '1'
11:42:57 731 result: SELECT `username` FROM `users` WHERE `username` = '' AND `passwd` = '' AND `active` = '1'
И, естественно:
SMTP>> 535 Incorrect authentication data
ибо $auth2 и $auth3 не разворачиваются...
Как быть, где почитать, что настроить?
Вторая моя проблема связана с заголовками писем, которые приходят:
...
Sender: "admin@example.ru"@example.ru
...
Return-Path: "admin@example.ru"@example.ru
...
Они такие, если отправлять из thunderbird или roundcube. Почему они такие?
Ребята помогите, пожалуйста! Направьте в нужную сторону.