nginx как smtp proxy

Alexey Belousov web at biplane.ru
Sun Apr 29 16:03:02 MSD 2007


Здравствуйте.

Никак не получается настроить nginx в качестве smtp-proxy с 
авторизацией. Проблемы есть и при отправке клиентом (Thunderbird 
1.5.0.10) и при отправке "вручную", через telnet. Вот что происходит при 
отправке почтовым клиентом (выловил через tcpdump):

<< 220 nginx-proxy.ru ESMTP ready
>> EHLO [77.50.62.38]
<< 250-nginx-proxy.ru
<< 250-PIPELINING
<< 250-8BITMIME
<< 250 AUTH PLAIN LOGIN
>> AUTH PLAIN [login & pass]
<< 235 2.0.0 OK
>> MAIL FROM:<user at aol.com>
<< 250 ok
>> RCPT TO:<another_user at aol.com>
<< 553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)

В этот момент клиент сообщает об ошибке и дальше отправлять не хочет.
Вот что остается в логах nginx:

2007/04/29 13:26:10 [info] 7681#0: *5303 client 77.50.62.38 connected to nginx-proxy.ru:25
2007/04/29 13:26:10 [info] 7681#0: *5303 client logged in, client: 77.50.62.38, server: nginx-proxy.ru:25, login: "user at aol.com", upstream: real-smtp.ru
2007/04/29 13:26:11 [info] 7681#0: *5303 proxied session done, client: 77.50.62.38, server: nginx-proxy.ru, login: "user at aol.com", upstream: real-smtp.ru

Если же отправлять не через nginx, а сразу через реальный stmp хост, то 
все проходит гладко:

<< 220 real-smtp.ru ESMTP
>> EHLO [77.50.62.38]
<< 250-real-smtp.ru
<< 250-AUTH LOGIN CRAM-MD5 PLAIN
<< 250-AUTH=LOGIN CRAM-MD5 PLAIN
<< 250-PIPELINING
<< 250 8BITMIME
>> AUTH PLAIN [login & password]
<< 235 ok, go ahead (#2.0.0)
>> MAIL FROM:<user at aol.com>
<< 250 ok
>> RCPT TO:<another_user at aol.com>
<< 250 ok
>> DATA
<< 354 go ahead
>> hello there
>> .
<< 250 ok 1177838939 qp 17768
>> QUIT
<< 221 real-smtp.ru

Создается впечатление, что nginx почему-то не понимает синтаксиса, 
передаваемого клиентом.
Чтобы убедиться в том, что это действительно так, я попробовал отправить 
через nginx руками, то есть через telnet:

<< 220 protion.biplane.ru ESMTP ready
>> EHLO [77.50.62.38]
<< 250-nginx-proxy.ru
<< 250-PIPELINING
<< 250-8BITMIME
<< 250 AUTH PLAIN LOGIN
>> AUTH PLAIN [login & password]
<< 235 2.0.0 OK
>> MAIL TO another_user at aol.com
<< 250 ok
>> MAIL FROM user at aol.com
<< 250 ok
>> RCPT TO another_user at aol.com
<< 250 ok
>> DATA
<< 354 go ahead
>> hello there
>> .
<< 250 ok 1177840626 qp 17840
<< QUIT

Вроде бы все хорошо, письмо принято и скоро должно попасть к адресату. 
Логи nginx:

2007/04/29 14:07:00 [info] 7681#0: *5978 client 77.50.62.38 connected to nginx-proxy.ru
2007/04/29 14:07:05 [info] 7681#0: *5978 client logged in, client: 77.50.62.38, server: nginx-proxy.ru:25, login: "user at aol.com", upstream: real-smtp.ru:25
2007/04/29 14:07:17 [info] 7681#0: *5978 proxied session done, client: 77.50.62.38, server: nginx-proxy.ru:25, login: "user at aol.com", upstream: real-smtp.ru:25

Но на самом деле, письмо не доходит. Вот что остается в логах мыльника:

Apr 29 14:07:17 smtp-host qmail: 1177841237.922926 new msg 14866916
Apr 29 14:07:17 smtp-host qmail: 1177841237.923263 info msg 14866916: bytes 314 from <> qp 17896 uid 82
Apr 29 14:07:17 smtp-host qmail: 1177841237.923280 starting delivery 169: msg 14866916 to local smtp-host.ru- at smtp-host.ru
Apr 29 14:07:17 smtp-host qmail: 1177841237.923291 status: local 1/10 remote 0/20
Apr 29 14:07:17 smtp-host qmail: 1177841237.926962 delivery 169: failure: Sorry,_no_mailbox_here_by_that_name._(#5.1.1)/
Apr 29 14:07:17 smtp-host qmail: 1177841237.929193 status: local 0/10 remote 0/20
Apr 29 14:07:17 smtp-host qmail: 1177841237.929257 double bounce: discarding bounce/14866916
Apr 29 14:07:17 smtp-host qmail: 1177841237.929780 end msg 14866916

Сервис авторизации и получение почты через pop3/imap работают отлично. В 
чем дело - никак не пойму, бьюсь уже три дня, буду благодарен за любую 
подсказку.
Теперь о системе.
Хост, на котором крутится nginx:

FreeBSD 6.2-RELEASE #0: Wed Feb 28 11:11:59 MSK 2007

nginx:

nginx version: nginx/0.5.19
built by gcc 3.4.6 [FreeBSD] 20060305
configure arguments: --with-mail --with-http_ssl_module

Хост, на котором расположен почтовый сервер:

FreeBSD 6.2-RELEASE #1: Tue Mar 13 16:37:28 MSK 2007

mta - qmail 1.03
Конфиг nginx:

mail {
      auth_http    localhost:970/;
      auth_http_timeout  5;

      proxy_pass_error_message on;

      imap_capabilities "IMAP4rev1" "UIDPLUS" "CHILDREN" "NAMESPACE" "THREAD=ORDEREDSUBJECT" "THREAD=REFERENCES" "SORT" "QUOTA"

      pop3_auth         plain;
      pop3_capabilities "TOP" "USER" "PIPELINING" "UIDL";

      smtp_auth         login plain;
      smtp_capabilities PIPELINING 8BITMIME;
      xclient off;

      server {
          listen     proxy-host.ru:25;
          protocol   smtp;
          timeout    300s;
      }

      server {
          listen     proxy-host.ru:110;
          protocol   pop3;
          proxy      on;
      }

      server {
          listen     proxy-host.ru:143;
          protocol   imap;
          proxy      on;
      }
 }


-- 
Best regards, Alexey Belousov
[no pasaran] [#lan_games] [bbg]
np: XODusShow replay feat. Ben XO (XPOSURE Recs) (Bassdrive - Music Beyond - 24/7 Drum and Bass Jungle Radio Featuring Live Shows) [stopped]






More information about the nginx-ru mailing list