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 также начали нормально уходить.

VN:F [1.9.21_1169]
Rating: 3.8/10 (32 votes cast)
VN:F [1.9.21_1169]
Rating: -3 (from 9 votes)
Exim VS клиенты Android, 3.8 out of 10 based on 32 ratings

Теги:

Ваш отзыв