Ваша проблема в том, что вы указали разделитель "EOF"
. Когда разделитель документа здесь -заключен в кавычки, раскрытие параметров в теле не выполняется, поэтому ваш пароль получает буквальное значение "$pass"
. Попробуйте использовать EOF
без кавычек в качестве разделителя.
[Отказ от ответственности :Нижеследующее было полностью протестировано для Postfix v3.5.1. в период с -по -дату установки Arch linux. Устранение неполадок для Postfix v3.4.10 в Ubuntu 20.04 должно быть очень похожим, за исключением (, возможно, )для нескольких путей к файлам, жестко запрограммированных в main.cf
и/или master.cf
.]
Я вижу настройки параметров, которые начинаются с smtpd_...
. Это необходимо только в том случае, если вы имеете в виду, что локальный постфикс вашего хоста может обрабатывать входящую электронную почту. Если вы хотите только отправить электронное письмо через smtp relay, вы можете закомментировать их.
Ошибка 452:Не удалось определить домен отправителя.(в ответ на команду MAIL FROM )userXXX@\< domain_name
>.it
Домен вашего локального хоста не разрешен правильно. Судя по редактированию вашего вопроса, он установлен неправильно. Добавьте следующее или измените существующую конфигурацию в/etc/postfix/main.cf
:
append_at_myorigin = yes
append_dot_mydomain = ${{$compatibility_level} < {1} ? {yes} : {no}}
tls_append_default_CA = no
inet_interfaces = $myhostname, localhost
# might speed up your sending process if your host
# is part of a subnet with other hosts.
mydestination = $myhostname, localhost.$mydomain, localhost
mydomain = aoos # confirm that's the local domain name you chose
myhostname = localhost
mynetworks_style = subnet
myorigin = $mydomain
relay_domains = $mydestination
relayhost = [smtp.gmail.com]:465 # << only when using gmail as smtp server.
# Replace with your own smtp server. Always include
# square brackets as shown + optional port.
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
# or use 'smtp_tls_CApath = /etc/ssl/certs' as shown by you
smtp_tls_security_level = encrypt # Use either 'encrypt' or 'may'
smtp_tls_wrappermode = yes # Poorly or not documented, but necessary when
# using TLS with Google's smtp outgoing mail gateway
smtp_use_tls = yes
В дополнение к вышесказанному вам необходимо защитить свое имя пользователя и пароль для используемого шлюза smtp в /etc/postfix/sasl_passwd
. Ниже я привожу пример для smtp.gmail.com:
$ cat /etc/postfix/sasl_passwd
[smtp.gmail.com]:465 <my_username>@gmail.com:<my_passwd>
$ sudo chmod 600 /etc/postfix/sasl_passwd
$ sudo postmap /etc/postfix/sasl_passwd
РЕДАКТИРОВАТЬ #1:Также сделать:$ sudo chown root:postfix /etc/postfix/sasl_passwd*
Я предполагаю, что служба postfix
уже включена и запущена. Если он не включен, выполните:sudo systemctl enable postfix
.
Перезагрузите параметр конфигурации и перезапустите службу postfix
:
$ sudo postfix reload
$ sudo systemctl restart postfix.service
Наконец, попробуйте отправить электронное письмо:
$ touch foobar
$ mail -s "test #<my_test_nbr>" -a foobar <my_external_email> < <(echo "Hello world")
$ journalctl -xe # report relevant warnings & errors (***EDIT***)
$ mailq # report full output
Сообщите, если у вас возникнут дополнительные проблемы. ХТН.
РЕДАКТИРОВАТЬ #2:Из ваших попыток отправки почты с постфиксом я вижу, что отправка происходит по IPv6. RFC -6724 указывает, что если машина представляет собой двойной -стек (, где протоколы IPv4 и IPv6 работают в одной и той же сетевой инфраструктуре ), сначала следует попытаться подключиться к IPv6. У вас скорее всего такая установка. Насколько я знаю, Google принимает stmp-запросы по IPv6, но только в том случае, если источник запроса предоставляет обратное доменное имя для целей аутентификации . Вы не можете контролировать это со стороны MTA; это в руках вашего интернет-провайдера. Итак, на вашем месте я бы сначала попытался заставить работать отправку через IPv4, а затем поэкспериментировал с IPv6. Для этого хотя бы в целях тестирования с помощью gmail измените /etc/postfix/main.cf
на:
inet_protocols = ipv4
Это не означает, что вы застряли на IPv4 для всех подключений по IP. Существует postfix
работа -с transport
картами, если вы все еще хотите IPv6, за исключением gmail; другой вопрос, который вы хотите задать в другом посте, возможно.