Назад | Перейти на главную страницу

Маршрутизация Exim на Cyrus LMTP не работает

У меня проблемы с подключением Exim к Cyrus lmtp.

Я знаю, что lmtp получает. Он прослушивает порт 2003. Я использовал следующий сценарий Perl, чтобы протестировать его.

!/usr/bin/perl -w

use Net::LMTP;

my $lmtp = Net::LMTP->new('localhost', 2003);

$lmtp->mail($ENV{USER});
$lmtp->to('test@example.com');

$lmtp->data();
$lmtp->datasend("To: postmaster\n");
$lmtp->datasend("\n");
$lmtp->datasend("A simple test message\n");
$lmtp->dataend();

$lmtp->quit;

В результате его выполнения в соответствующей папке cyrus spool появился файл: 1.

root@myhost:/var/spool/cyrus/mail/domain/e/example.com/t/user/test# cat 1.
Return-Path: <root@myhost.example.net>
Received: from myhost.example.net (localhost [127.0.0.1])
         by myhost.example.net (Cyrus 2.5.10-Debian-2.5.10-3) with LMTPA;
         Sun, 07 Oct 2018 12:45:48 +0100
X-Sieve: CMU Sieve 2.4
To: postmaster
Message-ID: <cmu-lmtpd-11754-1538912748-0@myhost.example.net>
Date: Sun, 07 Oct 2018 12:45:48 +0100

A simple test message

Я запускаю свою собственную сборку exim.

Выполнение опции маршрутизации exim-bt

/usr/exim/bin/exim -bt test@example.com

приводит к

test@example.com
  router = cyrus_vdom, transport = cyrus_ltcp

Вот маршрутизатор и транспорт exim:

cyrus_vdom:
  driver = accept
  domains = +cyrus_domains
  transport = cyrus_ltcp
  no_more


cyrus_ltcp:
  driver = smtp
  protocol = lmtp
  hosts = localhost
  port = 2003

Сообщения застревают в exim, и выполнение

exim -qff 

не вытесняет их.

2018-10-07 12:35:48 exim 4.91 daemon started: pid=11455, -q30m, listening for SMTP on port 25 (IPv6 and IPv4) port 587 (IPv6 and IPv4) and for SMTPS on port 465 (IPv6 and IPv4)
2018-10-07 12:35:48 Start queue run: pid=11456
2018-10-07 12:35:48 1g8uZF-00027o-TS Message is frozen
2018-10-07 12:35:48 1g8oBv-0000L0-JO Message is frozen
2018-10-07 12:35:48 End queue run: pid=11456
2018-10-07 13:05:48 Start queue run: pid=11812
2018-10-07 13:05:48 1g8uZF-00027o-TS Message is frozen
2018-10-07 13:05:48 1g8oBv-0000L0-JO Message is frozen
2018-10-07 13:05:48 End queue run: pid=11812
2018-10-07 13:35:49 Start queue run: pid=11955
2018-10-07 13:35:49 1g8oBv-0000L0-JO Message is frozen
2018-10-07 13:35:49 1g8uZF-00027o-TS Message is frozen
2018-10-07 13:35:49 End queue run: pid=11955

Любые предложения приветствуются.

Ping localhost привел к

PING localhost(localhost (::1)) 56 data bytes
64 bytes from localhost (::1): icmp_seq=1 ttl=64 time=0.039 ms
64 bytes from localhost (::1): icmp_seq=2 ttl=64 time=0.046 ms
64 bytes from localhost (::1): icmp_seq=3 ttl=64 time=0.047 ms

IPv6, понятно.

Бег

netstat -anp

показал, что порт 2003 не прослушивается на IPv6, только на IP4.

Изменение транспортных хостов exim на это исправило.

cyrus_ltcp:
  driver = smtp
  protocol = lmtp
  hosts = 127.0.0.1
  port = 2003
  allow_localhost