nginx SMTP代理

使用nginx做邮件代理,需要在nginx.conf添加一下配置:

#Mail Proxy  
mail {  
         auth_http  IP:port/xxx;  
         pop3_capabilities  "TOP"  "USER";  
         #smtp_capabilities  "no";  
         smtp_capabilities "SIZE 10485760" ENHANCEDSTATUSCODES 8BITMIME DSN;  
  
         #POP3 Auth  
         server {  
            listen     110;  
            protocol   pop3;  
            proxy      on;  
            pop3_auth plain;  
         }  
  
         #SMTP Auth  
         server {  
              listen 25;  
              protocol smtp;  
              proxy on;  
              #xclient off;  
              smtp_auth login plain;  
         }  
}  

auth_http 是验证邮箱账号和密码是否正确,官网采用的是PHP方式,如果想不验证,直接添加一下server配置即可:

 server {
        listen       port;
        server_name  ip;
        
        location = /auth {
            add_header Auth-Status OK;
            add_header Auth-Server 221.176.9.170;  # 邮箱的IP
            add_header Auth-Port   25;        # 邮箱的端口
            return 204;
        }
    }

 

对于smtp 邮箱代理,如果邮件服务器需要验证用户名和密码,则需要在此步完成,如果auth_http 返回验证通过,实际没有验证,则会导致因为邮件服务器无法验证用户而发不了邮件,可以通过在邮件服务器设置白名单解决。

posted @ 2015-12-16 22:46  世间安得两全法  阅读(11805)  评论(0编辑  收藏  举报