ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

nginx как smtp proxy



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

Никак не получается настроить 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:

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;
     }
}


--
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]




 




Copyright © Lexa Software, 1996-2009.