Email 如何将Nginx设置为外部smtp服务器的smtp代理?
我正在尝试设置nginx邮件代理Gmail smtp服务器。Nginx服务器在docker上运行 在测试期间,我使用了Email 如何将Nginx设置为外部smtp服务器的smtp代理?,email,nginx,proxy,smtp,Email,Nginx,Proxy,Smtp,我正在尝试设置nginx邮件代理Gmail smtp服务器。Nginx服务器在docker上运行 在测试期间,我使用了openssl s_client-connect mail.localhost.com:12465-starttls-smtp(由于端口可用性原因,端口与配置不同) Openssl成功连接,我设法获得EHLO并运行AUTH登录。但是,我仍然收到错误502 5.5.1无法识别的命令。u6sm12628547ejn.14-gsmtp。当帐户中启用了安全性较差的应用时,会显示相同的消息
openssl s_client-connect mail.localhost.com:12465-starttls-smtp
(由于端口可用性原因,端口与配置不同)
Openssl成功连接,我设法获得EHLO并运行AUTH登录。但是,我仍然收到错误502 5.5.1无法识别的命令。u6sm12628547ejn.14-gsmtp
。当帐户中启用了安全性较差的应用时,会显示相同的消息
直接在smpt.gmail.com上运行上面的命令效果很好,如果不允许安全性较差的应用程序
安全性,则会正确显示错误
当前nginx.conf如下所示
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 9101;
server_name localhost;
location /smtpauthssl {
if ($http_auth_user ~* "(?<=@)(\S+$)" ) {
set $domain $1;
}
set $smtp_port '587';
add_header Auth-Status "OK";
add_header Auth-Port $smtp_port;
add_header Auth-Server "108.177.119.108";
return 200;
}
location = / {
return 403;
}
}
}
mail {
server_name mail.mydomain.com;
auth_http localhost:9101/smtpauthssl;
proxy_pass_error_message on;
proxy_smtp_auth on;
xclient on;
ssl_certificate /etc/ssl/certs/certificate.pem;
ssl_certificate_key /etc/ssl/certs/key.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
server {
listen 587 ssl;
protocol smtp;
smtp_auth login plain cram-md5;
}
}
worker\u进程1;
事件{
工人(1024);;
}
http{
包括mime.types;
默认_类型应用程序/八位字节流;
发送文件到;
保持生命超时65;
服务器{
听9101;
服务器名称localhost;
位置/smtpauthssl{
如果($http_auth_user~*”)?