我正在开发一个Ruby on Rails应用程序,并且有一个登台服务器.但是这个登台服务器没有发送任何电子邮件 – 相反,它正在丢弃它们.
为了测试我们发送的电子邮件,以及这些电子邮件的外观(所以我们可以使用登台服务器进行QA),我找到了MailCatcher.但是目前它专注于开发环境,所以既不支持HTTPS也不支持身份验证 – 我不想为所有人公开所有MailCatcher电子邮件.
有没有办法通过Apache或Nginx提供HTTPS和基本身份验证?也许反向代理?
最佳答案
经过一些尝试,并且由于用户mailq提示,我设法使用Apache 2.2 mod_proxy_balancer,mod_proxy和mod_proxy_http来反向代理MailCatcher,能够提供HTTPS和HTTP基本身份验证标头.
一些设置细节:
>服务器正在运行Ubuntu 10.04 LTS
>我的mailcatcher gem目录是/usr/local/rvm/gems/ree-1.8.7-2011.03/gems/mailcatcher-0.5.1/public.
>我的服务器URL是mailcatcher.example.com.
>我在/etc/apache2/ssl/mailcatcher.example.com.pem和/etc/apache2/ssl/mailcatcher.example.com.key上创建了一个自签名证书.
>我的HTTP BasicAuth用户名是用户名,密码是s3cr3t.
>用户称为部署.
>部署用户需要手动打开MailCatcher(换句话说,Apache不会自行打开它).
创建一个htpasswd用户/密码文件
mkdir -p /home/deploy/mailcatcher
htpasswd -cb /home/deploy/mailcatcher/htpasswd theusername s3cr3t
写入/ etc / apache2 / sites-available / mailcatcher
激活所需的Apache模块,站点并重启apache
a2enmod ssl
a2enmod proxy_balancer
a2enmod proxy_http
a2ensite mailcatcher
service apache2 restart
打开MailCatcher
mailcatcher --ip 127.0.0.1 --smtp-port 1025 --http-port 1080
我做的最后一件事是配置我的Ruby on Rails应用程序,使用SMTP服务器127.0.0.1,端口1025(而不是默认端口25)发送电子邮件.
要访问https://mailcatcher.example.com,用户名为用户名和密码s3cr3t.