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 返回验证通过,实际没有验证,则会导致因为邮件服务器无法验证用户而发不了邮件,可以通过在邮件服务器设置白名单解决。