使用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 返回驗證通過,實際沒有驗證,則會導致因為郵件服務器無法驗證用戶而發不了郵件,可以通過在郵件服務器設置白名單解決。