Ruby on Rails appを開発していて、ステージングサーバーがあります。しかし、このステージングサーバーはメールを送信していません。代わりに、破棄しています。それら。
送信される電子メールと、それらの電子メールがどのように見えるかをテストするために(QAにステージングサーバーを使用できるように)、 MailCatcher を見つけました。ただし、現在は開発環境に重点を置いているため、HTTPSも認証もサポートされていません。また、すべてのMailCatcherメールをすべての人に公開したくありません。
ApacheまたはNginxを介してHTTPSと基本認証を提供する方法はありますか?多分リバースプロキシ?
何度か試した後、ユーザー mailq のヒントのおかげで、Apache 2.2 mod_proxy_balancer、mod_proxy、mod_proxy_httpを使用してMailCatcherをリバースプロキシし、HTTPSおよびHTTP基本認証ヘッダーを提供できるようになりました。
いくつかのセットアップの詳細:
/usr/local/rvm/gems/ree-1.8.7-2011.03/gems/mailcatcher-0.5.1/public
です。mailcatcher.example.com
です。/etc/Apache2/ssl/mailcatcher.example.com.pem
と/etc/Apache2/ssl/mailcatcher.example.com.key
に自己署名証明書を作成しました。htpasswdユーザー/パスワードファイルを作成します
mkdir -p /home/deploy/mailcatcher
htpasswd -cb /home/deploy/mailcatcher/htpasswd theusername s3cr3t
/ etc/Apache2/sites-available/mailcatcherに書き込みます
<VirtualHost *:443>
ServerName mailcatcher.example.com
DocumentRoot /usr/local/rvm/gems/ree-1.8.7-2011.03/gems/mailcatcher-0.5.1/public
SSLEngine On
SSLCertificateFile /etc/Apache2/ssl/mailcatcher.example.com.pem
SSLCertificateKeyFile /etc/Apache2/ssl/mailcatcher.example.com.key
<Directory /usr/local/rvm/gems/ree-1.8.7-2011.03/gems/mailcatcher-0.5.1/public>
Allow from all
Options -MultiViews
FileEtag none
</Directory>
<LocationMatch "/">
AuthType Basic
AuthName "MailCatcher"
AuthUserFile /home/deploy/mailcatcher/htpasswd
Require valid-user
</LocationMatch>
RequestHeader set X_FORWARDED_PROTO 'https'
ProxyPassReverse / balancer://mailcatcher
ProxyPreserveHost on
ProxyRequests On
ProxyPass / balancer://mailcatcher/
<Proxy balancer://mailcatcher>
Order deny,allow
Allow from all
BalancerMember http://127.0.0.1:1080
</Proxy>
</VirtualHost>
必要な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
私が最後にしたことは、SMTPサーバー127.0.0.1を使用して電子メールを送信するようにRuby on Rails appを構成することでした、ポート1025(デフォルトのポート25の代わりに)。
アクセスするには https://mailcatcher.example.com 、ユーザー名ユーザー名とパスワードs3cr3t。
また試してみてください http://mailtrap.io -これはmailcatcherのようなWebベースの偽のSMTPサーバーです。ただし、SMTPサーバーを自分で実行したり、Apacheをセットアップしたりする必要はありません。
十分に柔軟な権限管理と承認があります。