LinuxForum.Fans
Тема

Не отправляется почта через Postfix

Автор: Deonio 18 сообщений 3124 просмотров
#355700

Моя OS Ubuntu 13.10
Первый раз установил Postfix
И не отправляется почта через него.

Вот лог /var/log/mail.log

text
Dec 18 12:33:38 ubuntu postfix/smtp[26810]: 047FEC6239: to=<xxx@gmail.com>, relay=none, delay=8345, delays=8324/0.02/20/0, dsn=4.4.3, status=deferred (Host or domain name not found. Name service error for name=gmail.com type=MX: Host not found, try again)

В поисковиках дают ответ, что это проблема в ДНС, в частности в файле resolv.conf, но у меня его нет в системе.

Да и, вроде, ДНС работает, видит gmail

text
denis@ubuntu:~$ sudo nslookup gmail.com
Server:                127.0.1.1
Address:        127.0.1.1#53

Non-authoritative answer: Name: gmail.com Address: 173.194.32.150 Name: gmail.com Address: 173.194.32.149

Хотелось бы детальных объяснений в настройке Postfix, чтобы решить проблему.

Пользуйтесь тегами BBCode. yars

#355889

а что говорит

text
dig -t MX gmail.com
#355897

Вот ответ.

text
; <<>> DiG 9.9.3-rpz2+rl.13214.22-P2-Ubuntu-1:9.9.3.dfsg.P2-4ubuntu1 <<>> -t MX gmail.com
;; global options: +cmd
;; connection timed out; no servers could be reached

Что не так?

#355928

Что в конфигах postfix? Iptables?

#355930

С iptables не сталкивался.
Как с ней работать?

main.cf - конфиг

text
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) biff = no

# appending .domain is the MUA's job. append_dot_mydomain = no

#delay_warning_time = 4h

readme_directory = no

# 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

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination myhostname = mail.magazito.ru mydomain = magazito.ru #myhostname = gmail.com alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname local_recipient_maps = #mydestination = mydestination = adeonion@gmail.com, ubuntu.ubuntu-domain, localhost.ubuntu-domain, localhost relayhost = mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all

Еще какие-то конфиги нужны?

Пользуйтесь тегами BBCode. yars.

#355931

Покажите вывод

text
# iptables -L

UPD: Я с postfix дела не имел, но что-то мне подсказывает, что дело в

"Deonio" написал:
text
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

Это ж, как я понимаю, заставляет postfix слушать интерфейс loopback - компьютер.

#355935

Обычный пользователь

text
denis@ubuntu:~$ iptables -L
ERROR: could not insert 'ip_tables': Operation not permitted
iptables v1.4.18: can't initialize iptables table `filter': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.

Супер

text
denis@ubuntu:~$ sudo iptables -L
[sudo] password for denis: 
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT) target prot opt source destination

Chain OUTPUT (policy ACCEPT) target prot opt source destination

Пользуйтесь тегами BBCode. yars.

#355937
"Deonio" написал:
Супер

Цепочки пусты, iptables не мешает.

#355941

Что делать?

#355948

у вас проблема с доступом к ДНС внешнему

должно быть так:

text
$ dig -t MX gmail.com

; <<>> DiG 9.8.1-P1 <<>> -t MX gmail.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50547 ;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION: ;gmail.com. IN MX

;; ANSWER SECTION: gmail.com. 3600 IN MX 20 alt2.gmail-smtp-in.l.google.com. gmail.com. 3600 IN MX 10 alt1.gmail-smtp-in.l.google.com. gmail.com. 3600 IN MX 5 gmail-smtp-in.l.google.com. gmail.com. 3600 IN MX 30 alt3.gmail-smtp-in.l.google.com. gmail.com. 3600 IN MX 40 alt4.gmail-smtp-in.l.google.com.

;; Query time: 80 msec ;; SERVER: 192.168.1.1#53(192.168.1.1) ;; WHEN: Thu Dec 19 13:40:14 2013 ;; MSG SIZE rcvd: 150

Если у вас такого нет, значит у вас не настроен ДНС. и внешний мир у вас не резолвится...
вы говорили что у вас нет файла /etc/resolv.conf? Это вас никак не смущает?

#355952

Мне нужно решить проблему.
Как решить?
Если нужен resolv.conf для этого, создам.
Что нужно написать в нем?
Как настроить ДНС правильно, помогите.

#355961

Везде куча параметров в описаниях.
Готовые решения есть?

Хотя, типа готовый пример:

# cat /etc/resolv.conf
nameserver 192.168.1.254
search lizella.net

Еще что-то про NetworkManager

Мне непонятно, как у себя все организовать.
Есть ссылка на нормальный мануал?

Типа - создаем файл, пишем то, делает, написанное, то.

#355968

Молодой человек, вы хотите помощи в том чтоб научиться или вам нужно срочно сделать?
1-е требует времени и сил на освоение материала
2-е требует суммы денег и знаний другого человека, который вам в этом поможет...

#355971

Судя по вопросам, которые вы подымаете, рановато вам еще в почту лезть, ибо почта в юниксах считается одним и уровней достижения знаний о системе, так как она составляет из себя совокупность знаний и технологий. Не зная как они работают и как их настраивать вы не сможете настроить службу почты, что мы и наблюдаем...
В гугле много есть инструкций даже по постфиксу(вот искать вы повидимому даже не пробовали), но инструкция подразумевает, что читающий ее имеет какие-то знания и умения владения системой, а для вас необходимость присутствия файла resolv.conf под вопросом была...
Изучайте азы для начала...

#356003

Я тоже в почте мало разбираюсь, но возьму на себя смелость дать совет.
Вам надо сделать следующее:
1. Вам нужен реальный белый статический IP адрес
2. За Ваше доменное имя отвечают два DNS сервера Yandex'a:

nslookup -type=all magazito.ru
text
magazito.ru     canonical name = www.magazito.ru
magazito.ru     nameserver = dns2.yandex.net
magazito.ru     nameserver = dns1.yandex.net

magazito.ru nameserver = dns2.yandex.net magazito.ru nameserver = dns1.yandex.net dns1.yandex.net internet address = 213.180.204.213 dns2.yandex.net internet address = 93.158.134.213

Вы должны первым делом добавить MX запись на DNS сервера Yandex.
У Yandex.ru - должен быть веб интерфейс который позволяет заносить DNS записи. Через него добавьте MX запись которая будет содержать белый IP адрес Вашего почтового сервера с установленным Postfix. Это можно сказать очень важный момент. Желательно еще добавить на DNS сервер - SPF запись.
3. Провайдер у которого Вы взяли белый реальный IP адрес должен прописать на своих DNS серверах PTR запись вида 111.222.333.444 -> mail.magazito.ru.
Это тоже обязательный момент. Потому что практически все сервера проверяют обратное преобразование IP в домен.
4. Если у Вас роутер, то надо пробросить для начала порты 25 и 110 на почтовый сервер.
5. Так как Вы первый раз поднимаете почтовый сервер, рекомендую начать со связки Postfix+Dovecot+MySQL+PostfixAdmin. Это минимум при котором Вам будет комфортно управлять почтовым сервером. А дальше будете по мере надобности прибавлять к этой связки нужный функционал через правку конфигов и установкой пакетов.
6. Для Ubuntu/Debian в Интернете очень много статей по установке Postfix, наверно Вы плохо искали ))).
Тут на форуме, да и во всем СНГ самая популярная ОС это Убунта/Debian - это уже говорит о многом.

#356009

Кстати как для незнающего. Ставьте Zimbra! там все само ставится. работает великолепно, но доменное имя за вас у провайдеров никто прописывать не будет... Оно тоже на постфиксе и т.д. Но удачно и качественно сделана как серверная так и клиентская часть...
Очень рекомендую всем...

Войдите или зарегистрируйтесь, чтобы ответить.