Я пытаюсь настроить свой sendmail для аутентификации через ретранслятор (comcast). Я вообще не вижу попыток аутентификации. Я пытаюсь просто отладить, как работает аутентификация, и не могу соединить все части ...
В моем .mc файле есть:
define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
define(`SMART_HOST', `relay:smtp.comcast.net.')dnl
define(`confAUTH_MECHANISMS', `PLAIN')dnl
FEATURE(`authinfo',`hash /etc/mail/client-info')dnl
И в моем / etc / mail / client-info:
AuthInfo:*.comcast.net "U:root" "I:comcast_user" "P:comcast_password"
Теперь я знаю, что с u / p все в порядке, так как я могу аутентифицироваться напрямую через SMTP, используя telnet.
Я не понимаю двух вещей.
Когда выполняется поиск записей AuthInfo, они сопоставляются с целевым именем хоста. Как? Использует ли он ключ карты (чего я и ожидал) или использует так называемый «домен» (параметр «R:», который я не устанавливаю в моей строке авторизации)
Что такое "U:" на самом деле? Sendmail README (http://www.sendmail.org/m4/smtp_auth.html) говорит, что это «пользователь (идентификатор авторизации)», а «I:» - это «идентификатор аутентификации». Это говорит о том, что мое имя пользователя должно быть в "U:", но http://www.sendmail.org/~ca/email/auth.html говорит, что «I:» - ваше имя удаленного пользователя.
Сеанс выглядит так:
[root@manticore]/etc/mail# sendmail -qf -v
Warning: Option: AuthMechanisms requires SASL support (-DSASL)
Running /var/spool/mqueue/p97CgcWq023273 (sequence 1 of 399)
my@email.com... Connecting to smtp.comcast.net. port 587 via relay...
220 omta19.westchester.pa.mail.comcast.net comcast ESMTP server ready
>>> EHLO my.host.name
250-omta19.westchester.pa.mail.comcast.net hello [my.ip.add.res], pleased to meet you
250-HELP
250-AUTH LOGIN PLAIN
250-SIZE 15728640
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-STARTTLS
250 OK
>>> STARTTLS
220 2.0.0 Ready to start TLS
>>> EHLO my.host.name
250-omta19.westchester.pa.mail.comcast.net hello [my.ip.add.res], pleased to meet you
250-HELP
250-AUTH LOGIN PLAIN
250-SIZE 15728640
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 OK
>>> MAIL From:<> SIZE=2183
550 5.1.0 Authentication required
MAILER-DAEMON... aliased to postmaster
postmaster... aliased to root
root... aliased to my@email.com
postmaster... aliased to root
root... aliased to my@email.com
>>> RSET
250 2.0.0 OK
[root@manticore]/etc/mail# sendmail -d0.1
Version 8.14.3
Compiled with: DNSMAP LOG MAP_REGEX MATCHGECOS MILTER MIME7TO8 MIME8TO7
NAMED_BIND NETINET NETINET6 NETUNIX NEWDB NIS PIPELINING SCANF
SOCKETMAP STARTTLS TCPWRAPPERS USERDB XDEBUG
Спасибо, Павел.
Мое решение было очень простым. OpenBSD sendmail по умолчанию не имеет установленного флага SASL и не может выполнять аутентификацию, даже обычный текст. Я действительно ожидал, что SASL используется только для «расширенной» аутентификации. Мой вывод -d0.1 явно не показывает флага SASL.
Для тех, у кого такая же проблема: эта страница (http://theory14.wordpress.com/2009/06/16/openbsd-smtp-authtls-imaps-proxy/) расплывчато (это не пошаговая инструкция по исправлению-OpenBSD-sendmail-for-SASL) объясняет необходимые шаги, которые необходимо выполнить. По сути, - загрузите исходный код пользовательского пространства и перестройте sendmail с флагом -DSASL.
P.S. Я думаю, что «U:» на самом деле является пользователем, который запускает sendmail, где «I:» - это пользователь, аутентифицируемый для клиента.
если используется FEATURE (`authinfo '), тогда имя хоста в записи карты должно точно соответствовать имени хоста почтового сервера ISP
См. На своем SMART_HOST + информацию о клиенте
Что такое "U:" на самом деле?
Хорошо, SMTP аутентификация заявляет на чистом английском
Пользователь U (разрешение) мне бы
я аутентификация мне бы
...
Пользователь или должен существовать идентификатор аутентификации, а также пароль. Все остальные записи имеют значения по умолчанию. Если один пользователя или идентификатора аутентификации отсутствует, то используется существующее значение за недостающий предмет.