Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email 如何将Nginx设置为外部smtp服务器的smtp代理?_Email_Nginx_Proxy_Smtp - Fatal编程技术网

Email 如何将Nginx设置为外部smtp服务器的smtp代理?

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。当帐户中启用了安全性较差的应用时,会显示相同的消息

我正在尝试设置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
。当帐户中启用了
安全性较差的应用时,会显示相同的消息

直接在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~*”)?