Exim VS клиенты Android
24 Dec 2013 | Автор: dd |Столкнулся тут с проблемой отправки писем с дефолтных почтовых клиентов для Android через smtp-сервер Exim. Сервак я этот настраивал 100500 лет назад и вроде все нормально у них пахало, а тут что то стали ныть что никак не могут отправить почту через свои устройства Samsung.
Причем для айфони все работало нормально во всех вариантах аутентификации, а вот почтовые клиенты Android, использующие plaintext, выдавали ошибку 435 Unable to authenticate at present.
В конфиге экзима стояла старая проверенная запись, выточенная бессонными ночами экспериментов и курения мануалов:
auth_plain:
driver = plaintext
public_name = PLAIN
server_condition = ${lookup mysql{SELECT user_idnr FROM dbmail_users \
WHERE userid = ‘${quote_mysql:$2}’ AND passwd = ‘${quote_mysql:$3}’}}
server_set_id = $2
Поломав некоторое время голову, пришел к выводу что надо включать дебаг, так что перезапустил экзим в следующем варианте:
# /usr/local/exim/bin/exim -bd -d+all
и стал смотреть по логам что не так:
21:43:43 1025 expanding: ${lookup mysql{SELECT user_idnr FROM dbmail_users WHERE userid = ‘${quote_mysql:$2}’ AND passwd = ‘${quote_mysql:$3}’}}
21:43:43 1025 result: 28
21:43:43 1025 auth_plain authenticator:
21:43:43 1025 $1 =
21:43:43 1025 $2 = USER
21:43:43 1025 $3 = PASS
21:43:43 1025 expanded string: 28
21:43:43 1025 expanding: $2
21:43:43 1025 result: USER
21:43:43 1025 SMTP>> 435 Unable to authenticate at present: 28
21:43:43 1025 LOG: MAIN REJECT
Поковырявшись в инетах вывел следующую рабочую запись (естественно для моей структуры базы данных):
auth_plain:
driver = plaintext
public_name = PLAIN
server_condition = ${lookup mysql{SELECT user_idnr FROM dbmail_users \
WHERE userid=’${quote_mysql:${local_part:$2}}’ \
AND passwd=’${quote_mysql:$3}’} {yes} {no}}
server_prompts = :
server_set_id = $2
Проверяем через командную строку:
# exim -bh 127.0.0.1
**** SMTP testing session as if from host 127.0.0.1
**** but without any ident (RFC 1413) callback.
**** This is not for real!
>>> 127.0.0.1 OK
220 mail.XXXX.ru ESMTP
ehlo
250-mail.XXXX.ru Hello localhost.XXXX.ru [127.0.0.1]
250-SIZE 26214400
250-8BITMIME
250-PIPELINING
250-AUTH PLAIN LOGIN CRAM-MD5
250 HELP
AUTH PLAIN AFVTRVIAUEFTUw==
>>> auth_plain authenticator:
>>> $1 =
>>> $2 = USER
>>> $3 = PASS
>>> expanded string: yes
235 Authentication succeeded
Письма с почтовых клиентов Android также начали нормально уходить.
Exim VS клиенты Android,Теги: exim