mailモジュールを使ったsmtp proxyに挫折したため、streamを利用してみます。
※アプリケーション層より下でProxyされるため、Nginx側でSSLを設定できません。
stream { proxy_protocol on; #-- smtp ------------------------------------------ upstream smtp { server SMTPSERVER:25; } server { listen {ProxyIP}:25; error_log /var/log/nginx/smtp-error.log error; proxy_pass smtp; } #-- smtp isubmissionport---------------------------- upstream smtp_submission { server SMTPSERVER:587; } server { listen {ProxyIP}:587; error_log /var/log/nginx/smtp-error.log error; proxy_pass smtp_submission; } #-- imap ------------------------------------------ upstream imap { server SMTPSERVER:143; } server { listen {ProxyIP}:143; error_log /var/log/nginx/imap-error.log error; proxy_pass imap; } #-- pop3 ------------------------------------------ upstream pop3 { server SMTPSERVER:110; } server { listen {ProxyIP}:110; error_log /var/log/nginx/pop3-error.log error; proxy_pass pop3; } }
smtpd_upstream_proxy_protocol = haproxy
haproxy_trusted_networks = {Proxy IP}
service imap-login { inet_listener imap { #port = 143 haproxy = yes } } service pop3-login { inet_listener pop3 { #port = 110 haproxy = yes } }