Я пытаюсь настроить свой домашний сервер для ретрансляции электронной почты с iPhone семьи. Для этого я создал единую учетную запись «пользователя» в базе данных SASL сервера и настроил sendmail на использование CRAM-MD5 в качестве единственного механизма SASL. В журнале (с высоким уровнем детализации) sendmail сообщает:
AUTH: available mech=CRAM-MD5, allowed mech=EXTERNAL GSSAPI KERBEROS_V4 DIGEST-MD5 CRAM-MD5
Когда iPhone подключается, его попытка аутентификации кажется добиться успеха (см. обмен ниже). Однако электронное письмо все равно отклоняется, и это меня полностью сбивает с толку ...
<-- EHLO [192.168.1.171]
--- 250-symbion.example.com Hello ... [...], pleased to meet you
--- 250-ENHANCEDSTATUSCODES
--- 250-PIPELINING
--- 250-8BITMIME
--- 250-SIZE
--- 250-DSN
--- 250-AUTH CRAM-MD5
--- 250-STARTTLS
--- 250-DELIVERBY
--- 250 HELP
<-- AUTH CRAM-MD5
--- 334 PDEzOT....dG1hbi5jb20+
--- 235 2.0.0 OK Authenticated
<-- MAIL FROM:<mi+m@aldan.example.net>
Authentication-Warning: symbion.example.com: Host ... [...] claimed to be [192.168.1.171]
--- 403 4.7.0 authentication required
ruleset=check_mail, arg1=<mi+m@aldan.example.net>, relay=... [...], reject=403 4.7.0 authentication required
<-- RCPT TO:<info@......>
--- 503 5.0.0 Need MAIL before RCPT
<-- DATA
--- 503 5.0.0 Need MAIL command
<-- QUIT
--- 221 2.0.0 symbion.example.com closing connection
Мой access
база данных небольшая:
CERTISSUER:/MY/OWN/Certificate/Authority RELAY
TLS_Clt:127.0.0.1 OK
TLS_Clt:192.168.1 OK
TLS_Clt: VERIFY:112
Try_TLS:127.0.0.1 NO
Try_TLS:192.168.1 NO
Connect:192.168.1 RELAY
Connect:127.0.0.1 RELAY
Srv_Features:127.0.0.1 S A V
Srv_Features:192.168.1 S A V
Srv_Features: s a v
То же самое и с sendmail, вызываемым локально:
% sendmail -O LogLevel=14 -bs -Am
220 symbion.example.com ESMTP Sendmail 8.15.2/8.15.2; Fri, 27 Oct 2017 01:02:25 -0400 (EDT)
AUTH CRAM-MD5
334 PDEwM....vbT4=
cmlvc0BzeW1ia...JhYjU5
235 2.0.0 OK Authenticated
MAIL FROM: mi@meow
403 4.7.0 authentication required
Хорошо, это виновник:
TLS_Clt: VERIFY:112
Не обязательно и даже вредно, потому что глупые айфоны нельзя настроить для представления клиентских сертификатов. Как только я удалил указанную выше строку, аутентификация начала работать обе для коллег, представивших удовлетворительные сертификаты, и для тех, кто предоставляет общие учетные данные через CRAM-MD5
вместо.
(The AUTH_OPTIONS
часть оказалась неуместной.)