Я переустановил чистый Debian 8 на свой VPS.
Все настроено на значения по умолчанию.
dpkg -s exim4
и dpkg -s postfix
говорит, что eximне являетсяустановлен, и этот постфиксявляетсяустановлен. Это подтверждается тем lsof -i :25
, что показывает PID 478, затем ps p 478
показывает 478 ? Ss 0:00 /usr/lib/postfix/master
. Я не делал apt-get install postfix
, похоже, что он был установлен по умолчанию.
Я уже создал запись DNS MX для example.com
своего регистратора, направив ее на свой сервер.
Я только что отправил письмо со своего Gmail на адрес [email protected]
.
Я все еще вижу,
No mail
когда делаю$ mail
.Как узнать, пришло ли что-то на postfix?
Нужно ли настроить новую установку Debian, чтобы принимать электронную почту из Интернета?
Стоит ли мне создать почтовый ящик
root
локально, чтобы принимать почту, приходящую от внешних почтовых программ[email protected]
?
Вот результат iptables
(без изменений, конфигурация по умолчанию):
root@blah:~# iptables -nvL
Chain INPUT (policy ACCEPT 77135 packets, 50M bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 2 packets, 120 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 66416 packets, 11M bytes)
pkts bytes target prot opt in out source destination
Теперь я вижу в cat /var/log/mail.log
этом:
Nov 22 11:57:32 blah postfix/smtpd[10485]: connect from mail-ua0-f171.google.com[209.85.xxx.xxx]
Nov 22 11:57:32 blah postfix/smtpd[10485]: NOQUEUE: reject: RCPT from mail-ua0-f171.google.com[209.85.xxx.xxx]: 454 4.7.1 <[email protected]>: Relay access denied; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<mail-ua0-f171.google.com>
Nov 22 11:57:32 blah postfix/smtpd[10485]: disconnect from mail-ua0-f171.google.com[209.85.xxx.xxx]
решение1
Эта строка содержит полезную информацию, которая вам нужна
Nov 22 11:57:32 blah postfix/smtpd[10485]: NOQUEUE: reject: RCPT from mail-ua0-f171.google.com[209.85.xxx.xxx]: 454 4.7.1 <[email protected]>: Relay access denied; from=<[email protected]> to=<[email protected] ...
Это говорит вам о том, что ваш компьютер отказывается передавать сообщение от Google[email protected]. Теперь вы знаете, что ваш компьютер — example.com, но, очевидно, ваш компьютер не знает.
Решение: измените локальную конфигурацию, включив example.com в качестве имени для вашей локальной машины. На веб-сайте Postfix (((BASIC_CONFIGURATION_README.html)[ имеется легко читаемый документhttp://www.postfix.org/BASIC_CONFIGURATION_README.html#mydestination]), который объясняет, как это настроить:
Мое собственное доменное имя
Параметр mydomain указывает родительский домен $myhostname. По умолчанию он получается из $myhostname путем отбрасывания первой части (если только результатом не будет домен верхнего уровня).
И наоборот, если указать mydomain в main.cf, то Postfix будет использовать его значение для генерации полного значения по умолчанию для параметра myhostname.
Примеры (укажите только один из следующих):
/etc/postfix/main.cf: mydomain = local.domain mydomain = virtual.domain (virtual interface)
На какие домены получать почту
Параметр mydestination указывает, какие домены эта машина будет доставлять локально, а не пересылать на другую машину. По умолчанию принимается почта для самой машины. Смотрите файл VIRTUAL_README, чтобы узнать, как настроить Postfix для размещенных доменов.
Вы можете указать ноль или более доменных имен, шаблонов "/file/name" и/или таблиц поиска "type:table" (таких как hash:, btree:, nis:, ldap: или mysql:), разделенных пробелами и/или запятыми. Шаблон "/file/name" заменяется своим содержимым; "type:table" запрашивает выполнение поиска в таблице и просто проверяет ее существование: результат поиска игнорируется.
ВАЖНО: Если ваш компьютер является почтовым сервером для всего домена, необходимо также указать $mydomain.
Пример 1: настройка по умолчанию.
/etc/postfix/main.cf: mydestination = $myhostname localhost.$mydomain localhost
Пример 2: почтовый сервер домена.
/etc/postfix/main.cf: mydestination = $myhostname localhost.$mydomain localhost $mydomain
Пример 3: хост с несколькими записями DNS A.
/etc/postfix/main.cf: mydestination = $myhostname localhost.$mydomain localhost www.$mydomain ftp.$mydomain
Внимание: чтобы избежать зацикливания доставки почты, необходимо указать все имена хостов машины, включая $myhostname и localhost.$mydomain.
Итак, этого должно быть достаточно:
mydomain = example.com
...
mydestination = $myhostname localhost.$mydomain localhost $mydomain
решение2
В дополнение к ответу roaima, это решило проблему:
Добавьте доменное имя в
mydestination = <....>, mydomain.com
конце/etc/postfix/main.cf
Закомментируйте эту строку:
#mailbox_command = procmail -a "$EXTENSION"
Затем отправьте письмо с Gmail на адрес
[email protected]
, подождите несколько секунд.Сделайте это
mail
, вы увидите новое письмо :)