Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: nginx как smtp proxy
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@xxxxxxx>
> << 250 ok
> >>RCPT TO:<another_user@xxxxxxx>
> << 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@xxxxxxx", 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@xxxxxxx", 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@xxxxxxx>
> << 250 ok
> >>RCPT TO:<another_user@xxxxxxx>
> << 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@xxxxxxx
> << 250 ok
> >>MAIL FROM user@xxxxxxx
> << 250 ok
> >>RCPT TO another_user@xxxxxxx
> << 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@xxxxxxx", 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@xxxxxxx", 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-@xxxxxxxxxxxx
> 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
|