У меня есть почтовый сервер, на котором работает Postfix в моей локальной сети, с помощью которого я могу отправлять и получать электронные письма в своей локальной сети и отправлять их из глобальной сети в локальную сеть. Я не могу отправить из локальной сети в глобальную сеть .

Я пытаюсь использовать хост-ретранслятор моего провайдера (mail2.bahnhof.se) для решения этой проблемы, так как это кажется самым простым способом (ретрансляция не требует аутентификации).

С помощью telnet я могу подключиться напрямую к хосту ретранслятора и отправить электронное письмо без аутентификации:

> telnet mail2.bahnhof.se 25
Connected to mail2.bahnhof.se.
helo mail.mydomain.com
250 mxf2.bahnhof.se
mail from: user11@mail.mydomain.se
250 Ok
rcpt to: user11@gmail.com
250 Ok
data
354 End data with <CR><LF>.<CR><LF>
This is a test
.
250 Ok: queued as 9BFD413BAE5

Попытка использовать одно и то же реле на моем постфиксном сервере дает мне ошибку «Отказано в доступе к ретрансляции» (не уверен, какое реле это означает):

>telnet mail.mydomain.com 25
HELO mail.mydomain.com
250 mail.mydomain.com
mail from: user11@mail.mydomain.com
250 2.1.0 Ok
rcpt to: user11@gmail.com
554 5.7.1 <user11@gmail.com>: Relay access denied

Моя постфиксная конфигурация (main.cf):

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

myhostname = mail.mydomain.com
mydomain = mydomain.com
myorigin = $mydomain
smtpd_sender_restrictions = permit_mynetworks
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = mail.mydomain.com, ubuntu, localhost
relayhost = mail2.bahnhof.se
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

Есть идеи, что может быть не так?

1 ответ1

2

Да. Ваш сервер отказывает вам в ретрансляции. Так как:

smtpd_sender_restrictions = permit_mynetworks
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

Поэтому вы должны добавить свой диапазон IP (например, IP-адрес вашего клиента telnet) в my_networks

mynetworks = 192.168.0.15 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

В случае, если вы IP-адрес клиента Telnet является 192.168.0.15

Если ваш сервер размещен на интернет-провайдере и вы используете неизвестный динамический диапазон IP-адресов, вам придется использовать SMTP-аутентификацию на вашем сервере. Или просто оставьте свой сервер открытым реле (что, конечно, я бы не рекомендовал).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .