Задача:
Организовать в CMS приём входящей почты из ящиков, расположенных на gmail.com, и отправку исходящей почты на gmail.com.
Решение:
Поскольку в CMS пока нет встроенной поддержки SSL/TLS, воспользуемся программой stunnel. Она позволяет создавать SSL-туннели двух видов:
- клиент без SSL -> stunnel -> сервер с SSL
- клиент с SSL -> stunnel -> сервер без SSL
Для решения нашей задачи нужен туннель первого вида, используя который CMS сможет работать в качестве клиента с внешними SMTP- и POP3-серверами по SSL.
Работоспособность решения проверена автором на CMS 2.12 и stunnel 4.53.
Установка и настройка stunnel
1. Загружаем stunnel 4.53 (964 Кб) (сайт — www.stunnel.org) на тот же компьютер, где установлен CMS, и запускаем.
2. Устанавливаем все предлагаемые компоненты (2.4 Мб).
Примечание. Если в процессе установки появилось сообщение «Ошибка при инициализации приложения (0xc0150002)», прекращаем установку, устанавливаем Microsoft .NET Framework (проверено на версии 3.5) и повторно запускаем установку stunnel. В stunnel 4.54 (бета-версия) данная проблема решена. (Подсказал Karman).
3. В процессе установки появляется окно консоли. В нём нужно вводить запрашиваемые данные для создания SSL-сертификата. Можно просто нажимать Enter, тогда будут использованы значения по умолчанию, указанные в квадратных скобках.
Код: |
Country Name (2 letter code) [PL]: State or Province Name (full name) [Mazovia Province]: Locality Name (eg, city) [Warsaw]: Organization Name (eg, company) [Stunnel Developers]: Organizational Unit Name (eg, section) [Provisional CA]: Common Name (FQDN of your server) [localhost]: |
4. После установки в корне диска появляется файл .rnd. Судя по информации, приведённой в справке, этот файл можно без последствий удалить.
5. Для установки службой (название службы — stunnel) выполняем: Пуск — Программы — stunnel — Service install.
6. Открываем файл настроек для редактирования: Пуск — Программы — stunnel — Edit stunnel.conf.
В разделе «Global options» добавляем строку (чтобы не появлялся значок в области уведомлений):
Цитата: |
taskbar = no |
В разделе «Service definitions» настройки приводим к следующему виду (остальные настройки не меняем):
Цитата: |
;[pop3s] ;accept = 995 ;connect = 110;[imaps] ;accept = 993 ;connect = 143 ;[ssmtp] [gmail-pop3] [gmail-smtp] |
Если нужно работать по SSL не только с gmail.com, но и с другими серверами, добавляем для них дополнительные секции в разделе «Service definitions». Например, для mail.infobox.ru добавляем:
Цитата: |
[infobox-pop3] client = yes accept = 127.0.0.1:2111 connect = mail.infobox.ru:995[infobox-smtp] client = yes accept = 127.0.0.1:2026 connect = mail.infobox.ru:465 |
Сохраняем конфигурацию.
7. Запускаем службу stunnel: Пуск — Программы — stunnel — Service start.
8. Проверяем подключение к pop.gmail.com:
Код: |
> telnet.exe 127.0.0.1 2110+OK Gpop ready for requests from 173.194.71.108 i9pf4396573lbh.10 |
Проверяем подключение к smtp.gmail.com:
Код: |
> telnet.exe 127.0.0.1 2025220 mx.google.com ESMTP mo3sm6496546lab.2 |
Установка и настройка stunnel закончена.
Настройка CMS
Приём и отправку почты настраиваем как обычно, только вместо адреса:порта pop.gmail.com:995 используем 127.0.0.1:2110, а вместо smtp.gmail.com:465 — 127.0.0.1:2025. Соответствующие имена пользователей, пароли, адреса e-mail — от почтовых ящиков на gmail.com, без изменений. Всё.
2 комментария
Courier Mail Server с версии 3.05 уже умеет работать с SSL/TLS
Это отлично… Мне очень не хватало тогда такого функционала, пришлось городить костыль, как в статье.