nginx как smtp proxy

Igor Sysoev is at rambler-co.ru
Sun Apr 29 18:10:08 MSD 2007


On Sun, Apr 29, 2007 at 04:03:02PM +0400, Alexey Belousov wrote:

> Никак не получается настроить 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-proxy.ru не описан как доверенный хост у qmail,
который может релеить через qmail. (Хотя я не знаю, как qmail ругается
в таких случаях).

> В этот момент клиент сообщает об ошибке и дальше отправлять не хочет.
> Вот что остается в логах 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;
>      }
> }


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list