Я разрабатываю приложение Ruby on Rails и имею промежуточный сервер. Но этот промежуточный сервер не отправляет электронные письма - вместо этого он их отбрасывает.
Чтобы проверить, как отправляются наши электронные письма, и как они выглядят (чтобы мы могли использовать промежуточный сервер для контроля качества), я обнаружил MailCatcher. Но в настоящее время он ориентирован на среду разработки, поэтому нет поддержки ни HTTPS, ни аутентификации - и я не хочу раскрывать все электронные письма MailCatcher для всех.
Есть ли способы обеспечить HTTPS и базовую аутентификацию через Apache или Nginx? Может обратный прокси?
После некоторых попыток и благодаря пользователю mailq Совет, мне удалось использовать Apache 2.2 mod_proxy_balancer, mod_proxy и mod_proxy_http для обратного прокси MailCatcher, имея возможность обслуживать заголовки HTTPS и HTTP Basic Authentication.
Некоторые детали настройки:
/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
Последнее, что я сделал, - это настроил приложение Ruby on Rails для отправки электронной почты с помощью SMTP-сервера 127.0.0.1, порт 1025 (вместо порта по умолчанию 25).
К доступу https://mailcatcher.example.com, с именем пользователя Имя пользователя и пароль s3cr3t.
Попробуйте также http://mailtrap.io - это поддельный SMTP-сервер на базе Интернета, такой как mailcatcher. Но для этого не требуется, чтобы вы запускали SMTP-сервер самостоятельно и / или настраивали Apache.
Он имеет достаточно гибкое управление разрешениями и авторизацию.