Mercurial > hg > nginx-mail
view auto/threads @ 400:f1e2fab7a46c
Mail: smtp proxy without authentication.
Activated by auth method "unauth" in smtp_auth directive.
Waits for MAIL FROM and first RCPT TO from client, asks auth_http for
backend with additional headers Auth-SMTP-Helo, Auth-SMTP-From,
Auth-SMTP-To, and establishes connection to backend.
Auth-SMTP-From/To currently contain full command (e.g. "mail from: <>"),
this may change in future.
The functionality was designed to take off load from real smtp servers.
Additionally it may be used to implement pop-before-smtp authentication
(but dont do it unless you really need it - use real auth instead).
Current bug-features:
- If only "unauth" method activated in config, other methods (e.g. plain,
login) not advertised but accepted. Make sure your auth server handles
this gracefully.
- If backend server returns error on MAIL FROM / RCPT TO command while
proxy tunnel setup, nginx will close connection to client with 4xx
error. One may use proxy_pass_error_message directive to pass original
error message to client.
- Syntax of MAIL FROM / RCPT TO commands from client isn't checked.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Sun, 22 Jul 2007 23:55:12 +0000 |
parents | e85dca77c46a |
children |
line wrap: on
line source
# Copyright (C) Igor Sysoev case $USE_THREADS in rfork) have=NGX_THREADS . auto/have have=NGX_USE_RFORK . auto/have CORE_DEPS="$CORE_DEPS $FREEBSD_RFORK_DEPS" CORE_SRCS="$CORE_SRCS $FREEBSD_RFORK_SRCS" case "$NGX_PLATFORM" in *:i386) if [ \( $version -gt 500000 -a $version -lt 501000 \) \ -o $version -lt 491000 ] then CORE_SRCS="$CORE_SRCS $FREEBSD_RFORK_THREAD_SRCS" fi ;; esac ;; pthreads) have=NGX_THREADS . auto/have CORE_SRCS="$CORE_SRCS $PTHREAD_SRCS" CORE_LIBS="$CORE_LIBS -lpthread" ;; libthr) have=NGX_THREADS . auto/have CORE_SRCS="$CORE_SRCS $PTHREAD_SRCS" CORE_LIBS="$CORE_LIBS -lthr" ;; linuxthreads) have=NGX_THREADS . auto/have have=NGX_LINUXTHREADS . auto/have CFLAGS="$CFLAGS -D_THREAD_SAFE" CFLAGS="$CFLAGS -I /usr/local/include/pthread/linuxthreads" CORE_SRCS="$CORE_SRCS $PTHREAD_SRCS" CORE_LIBS="$CORE_LIBS -L /usr/local/lib -llthread -llgcc_r" ;; libc_r) case "$NGX_PLATFORM" in FreeBSD:[34]*) have=NGX_THREADS . auto/have CFLAGS="$CFLAGS -pthread" CORE_SRCS="$CORE_SRCS $PTHREAD_SRCS" CORE_LIBS="$CORE_LIBS -pthread" ;; FreeBSD:[56]*) have=NGX_THREADS . auto/have CORE_SRCS="$CORE_SRCS $PTHREAD_SRCS" CORE_LIBS="$CORE_LIBS -lc_r" ;; esac ;; NO) ;; *) have=NGX_THREADS . auto/have CORE_SRCS="$CORE_SRCS $PTHREAD_SRCS" CORE_LIBS="$CORE_LIBS -l$USE_THREADS" ;; esac