У меня есть две виртуальные машины и обе работают на сервере Ubuntu. Я должен иметь возможность отправлять электронные письма из lab2 в lab1, используя mail . lab2 работает exim4 а lab1 прослушивает postfix порт 25. Я должен настроить exim на lab2, чтобы он доставлял электронные письма, предназначенные для lab1 - lab1 и для lab2 - lab2. Он отлично работает , когда я отправить электронную почту с mail от LAB2 к LAB2, но я получаю сообщение об ошибке при отправке из LAB2 в lab1. Как я понимаю exim должен работать как реле для lab1? Я получаю ошибку: R=dnslookup_relay_to_domains defer (-1): host lookup did not complete , более подробная информация приведена ниже.

Из lab2 я могу ping и ssh в lab1. Кто-нибудь может помочь мне понять, что я делаю неправильно? Я попытался изменить конфигурацию exim, но я уверен, что здесь есть кое-что, чего я не понимаю ...

На lab1

IP-адрес lab1:

user@lab1:~$ ifconfig
enp0s3    Link encap:Ethernet  HWaddr 08:00:27:d5:ec:9a  
          inet addr:10.0.2.5  Bcast:10.0.2.255  Mask:255.255.255.0

Postfix прослушивает порт 25:

user@lab1:~$ netstat -tulpn
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -               
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      -  

На lab2

Содержимое /etc/hosts:

user@lab2:~$ cat /etc/hosts
127.0.0.1   localhost
127.0.1.1   lab2
10.0.2.5    lab1
# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Часть содержимого /var/lib/exim4/config.autogenerated:

# the following macro definitions were created
# dynamically by /usr/sbin/update-exim4.conf
.ifndef MAIN_LOCAL_INTERFACES
MAIN_LOCAL_INTERFACES=<; 127.0.0.1; 10.0.2.6
.endif
.ifndef MAIN_PACKAGE_VERSION
MAIN_PACKAGE_VERSION=4.86.2-2ubuntu2.3
.endif
.ifndef MAIN_LOCAL_DOMAINS
MAIN_LOCAL_DOMAINS=@:localhost:lab2: localhost
.endif
.ifndef MAIN_RELAY_TO_DOMAINS
MAIN_RELAY_TO_DOMAINS=lab1
.endif
.ifndef ETC_MAILNAME
ETC_MAILNAME=lab2
.endif
.ifndef LOCAL_DELIVERY
LOCAL_DELIVERY=maildir_home
.endif
.ifndef MAIN_RELAY_NETS
MAIN_RELAY_NETS=10.0.2.0/8 : 127.0.0.1 : ::::1
.endif
.ifndef DCreadhost
DCreadhost=empty
.endif
.ifndef DCsmarthost
DCsmarthost=mail.lab2
.endif
.ifndef DC_eximconfig_configtype
DC_eximconfig_configtype=internet
.endif
.ifndef DCconfig_internet
DCconfig_internet=1
.endif

Отправка письма от lab2 пользователю на lab1:

user@lab2:~$ echo "test" | mail -s test user@lab1

Вывод /var/log/exim4/mainlog:

2019-01-26 01:31:24 1gnBsa-0000PD-2b <= user@lab2 U=user P=local S=310
2019-01-26 01:31:24 1gnBsa-0000PD-2b == user@lab1 R=dnslookup_relay_to_domains defer (-1): host lookup did not complete

1 ответ1

0

Я много чего пробовал и немного запутался с конфигурацией. Наконец-то разобрались и вот правильная конфигурация из /etc/exim4/update-exim4.conf.conf

dc_eximconfig_configtype='smarthost'
dc_other_hostnames='lab2; localhost'
dc_local_interfaces='127.0.0.1'
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost='lab1'
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname='false'
dc_mailname_in_oh='true'
dc_localdelivery='maildir_home'

В основном, используя sudo dpkg-reconfigure exim4-config мне пришлось выбрать почту, отправленную с помощью опции mail sent by smarthost а затем установить lab1 как smarthost.

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