История изменений
Исправление constin, (текущая версия) :
Давайте разделим отсылку писем внешними серверами и отсылку писем пользователями.
Нормальная практика использовать для этого разные порты 25 для smtp и 587 для submission авторизованных юзеров. Но это не имеет значения. Можно использовать 25 порт для всего.
Итак. при коннекте телнетом на 25 порт у вас есть два варианта.
1. Сказать ehlo и сразу посылать почту и тогда для вас будут работать все ограничения в вашем конфиге для внешним серверов, так как правило permit_sasl_authenticated не будет срабатывать.
2. авторизоваться и обойти остальные ограничивающие правила.
Так вот reject_sender_login_mismatch правило для авторизовавшихся сессий. Сделано оно для того, чтобы юзер не слал письма с чужого мыла.
Вообще советую посмотреть вот эту таблицу, чтобы понять, что на каком этапе применяется.
telnet 192.168.0.2 25 # Comments
Trying 192.168.0.2...
Connected to 192.168.0.2 (192.168.0.2).
Escape character is '^]'.
220 mail.example.com ESMTP Postfix # <-smtp_client_restrictions
HELO mail.example.com # <-smtp_helo_restrictions
250 mail.example.com #
MAIL FROM:<ned@example.com> # <-smtp_sender_restrictions
250 2.1.0 Ok #
RCPT TO:<ned@example.com> # <-smtp_recipient_restrictions
250 2.1.5 Ok #
DATA # <-smtp_data_restrictions
354 End data with <CR><LF>.<CR><LF> #
To:<ned@example.com> # <-header_checks
From:<ned@example.com> #
Subject:SMTP Test #
This is a test message # <-body_checks
. #
250 2.0.0 Ok: queued as 301AE20034
QUIT
221 2.0.0 Bye
Connection closed by foreign host.
Если хотите протестить сессию с авторизацией, то пишите AUTH LOGIN следующей строкой после helo
Исправление constin, :
Давайте разделим отсылку писем внешними серверами и отсылку писем пользователями.
Нормальная практика использовать для этого разве порты 25 для smtp и 587 для submission авторизованных юзеров. Но это не имеет значения. Можно использовать 25 порт для всего.
Итак. при коннекте телнетом на 25 порт у вас есть два варианта.
1. Сказать ehlo и сразу посылать почту и тогда для вас будут работать все ограничения в вашем конфиге для внешним серверов, таке как правило permit_sasl_authenticated не будет срабатывать.
2. авторизоваться и обойти остальные ограничивающие правила.
Так вот reject_sender_login_mismatch правило для авторизовавшихся сессий. Сделано оно для того, чтобы юзер не слал письма с чужого мыла.
Вообще советую посмотреть вот эту таблицу, чтобы понять, что на каком этапе применяется.
telnet 192.168.0.2 25 # Comments
Trying 192.168.0.2...
Connected to 192.168.0.2 (192.168.0.2).
Escape character is '^]'.
220 mail.example.com ESMTP Postfix # <-smtp_client_restrictions
HELO mail.example.com # <-smtp_helo_restrictions
250 mail.example.com #
MAIL FROM:<ned@example.com> # <-smtp_sender_restrictions
250 2.1.0 Ok #
RCPT TO:<ned@example.com> # <-smtp_recipient_restrictions
250 2.1.5 Ok #
DATA # <-smtp_data_restrictions
354 End data with <CR><LF>.<CR><LF> #
To:<ned@example.com> # <-header_checks
From:<ned@example.com> #
Subject:SMTP Test #
This is a test message # <-body_checks
. #
250 2.0.0 Ok: queued as 301AE20034
QUIT
221 2.0.0 Bye
Connection closed by foreign host.
Если хотите протестить сессию с авторизацией, то пишите AUTH LOGIN следующей строкой после helo
Исправление constin, :
Давайте разделим отсылку писем внешними серверами и отсылку писем пользователями.
Нормальная практика использовать для этого разве порты 25 для smtp и 587 для submission авторизованных юзеров. Но это не имеет значения. Можно использовать 25 порт для всего.
Итак. при коннекте телнетом на 25 порт у вас есть два варианта.
1. Сказать ehlo и сразу посылать почту и тогда для вас будут работать все ограничения в вашем конфиге для внешним серверов, таке как правило permit_sasl_authenticated не будет срабатывать.
2. авторизоваться и обойти остальные ограничивающие правила.
Так вот reject_sender_login_mismatch правило для авторизовавшихся сессий. Сделано оно для того, чтобы юзер не слал письма с чужого мыла.
Вообще советую посмотреть вот эту таблицу, чтобы понять, что на каком этапе применяется.
telnet 192.168.0.2 25 # Comments
Trying 192.168.0.2...
Connected to 192.168.0.2 (192.168.0.2).
Escape character is '^]'.
220 mail.example.com ESMTP Postfix # <-smtp_client_restrictions
HELO mail.example.com # <-smtp_helo_restrictions
250 mail.example.com #
MAIL FROM:<ned@example.com> # <-smtp_sender_restrictions
250 2.1.0 Ok #
RCPT TO:<ned@example.com> # <-smtp_recipient_restrictions
250 2.1.5 Ok #
DATA # <-smtp_data_restrictions
354 End data with <CR><LF>.<CR><LF> #
To:<ned@example.com> # <-header_checks
From:<ned@example.com> #
Subject:SMTP Test #
This is a test message # <-body_checks
. #
250 2.0.0 Ok: queued as 301AE20034
QUIT
221 2.0.0 Bye
Connection closed by foreign host.
Исходная версия constin, :
Давайте разделим отсылку писем внешними серверами и отсылку писем пользователями.
Нормальная практика использовать для этого разве порты 25 для smtp и 587 для submission авторизованных юзеров. Но это не имеет значения. Можно использовать 25 порт для всего.
Итак. при коннекте телнетом на 25 порт у вас есть два варианта.
1. Сказать ehlo и сразу посылать почту и тогда для вас будут работать все ограничения в вашем конфиге для внешним серверов, таке как правило permit_sasl_authenticated не будет срабатывать.
2. авторищоваться и обойти остальные ограничивающие правила.
Так вот reject_sender_login_mismatch правило для авторизовавшихся сессий. Сделано оно для того, чтобы юзер не слал письма с чужого мыла.
Вообще советую посмотреть вот эту таблицу, чтобы понять, что на каком этапе применяется.
telnet 192.168.0.2 25 # Comments
Trying 192.168.0.2...
Connected to 192.168.0.2 (192.168.0.2).
Escape character is '^]'.
220 mail.example.com ESMTP Postfix # <-smtp_client_restrictions
HELO mail.example.com # <-smtp_helo_restrictions
250 mail.example.com #
MAIL FROM:<ned@example.com> # <-smtp_sender_restrictions
250 2.1.0 Ok #
RCPT TO:<ned@example.com> # <-smtp_recipient_restrictions
250 2.1.5 Ok #
DATA # <-smtp_data_restrictions
354 End data with <CR><LF>.<CR><LF> #
To:<ned@example.com> # <-header_checks
From:<ned@example.com> #
Subject:SMTP Test #
This is a test message # <-body_checks
. #
250 2.0.0 Ok: queued as 301AE20034
QUIT
221 2.0.0 Bye
Connection closed by foreign host.