Если у вас есть учетная запись Gmail, вы можете настроить свой MTA для ретрансляции исходящей почты через Gmail.
Это дает вам преимущество надежной инфраструктуры Gmail и предоставляет простые средства отправки электронной почты из командной строки.
В этом уроке мы будем использовать Postfix в качестве нашего MTA.
Postfix – это бесплатный, с открытым исходным кодом, активно поддерживаемый и высоконадежный агент передачи почты.
На каждом этапе мы рассмотрим инструкции, относящиеся к следующим операционным системам:
- Debian 9
- Ubuntu 18.04 LTS
- CentOS 7
- OpenSUSE Leap 15.0
- Arch Linux 2019.03.01
- FreeBSD 12.0
Мы также установим mailutils / mailx, чтобы мы могли отправить тестовое письмо.
При необходимости мы установим дополнительные библиотеки SASL.
Все команды, начинающиеся с #, требуют прав суперпользователя.
1. Установите необходимое программное обеспечение
Debian, Ubuntu:
apt-get update && apt-get install postfix mailutils
В ответ на запрос «General type of mail configuration» выберите Internet Site.
Когда вам будет предложено ввести «Имя почты», выберите имя хоста, которое будет использоваться в заголовках писем в качестве источника ваших писем.
Полное доменное имя является предпочтительным, но с помощью простого имени хоста вашей машины все в порядке.
Независимо от того, что вы введете здесь, ваш обратный адрес будет отображаться для получателей как ваш адрес Gmail.
Вам может быть предложено установить «Root and postmaster mail recipient».
Введите root или другого пользователя, который должен получать уведомления почтовой подсистемы.
Для любых других подсказок вы можете выбрать значения по умолчанию.
Fedora:
dnf update && dnf install postfix mailx
CentOS:
yum update && yum install postfix mailx cyrus-sasl cyrus-sasl-plain
OpenSUSE:
zypper update && zypper install postfix mailx cyrus-sasl
Arch Linux:
pacman -Sy postfix mailutils
FreeBSD:
Скомпилируйте Postfix, чтобы включить поддержку SASL:
portsnap fetch extract update
cd /usr/ports/mail/postfix
make config
В диалоговых окнах конфигурации выберите поддержку SASL. Все остальные параметры могут остаться прежними. Затем:
make install clean
Mailx может быть установлен из бинарного пакета:
pkg install mailx
2. Настройка аутентификации Gmail
Создайте или измените файл паролей, который будет использоваться Postfix для аутентификации в Gmail.
В приведенной ниже информации об аутентификации замените имя пользователя своим именем пользователя и пароль Gmail на свой пароль.
Если вы используете собственное доменное имя Gmail Apps, вы можете заменить gmail.com своим доменом Google Apps.
Файл пароля будет находиться в каталоге конфигурации Postfix.
Файл может называться как угодно, но рекомендуемое имя файла – sasl_passwd.
Debian, Ubuntu, Fedora, CentOS, OpenSUSE, Arch Linux:
Конфигурационные файлы Postfix находятся в каталоге /etc/postfix. Создайте или отредактируйте файл паролей:
nano /etc/postfix/sasl_passwd
Добавьте строку:
[smtp.gmail.com]:587 username@gmail.com:password
Сохраните и закройте файл.
Ваш пароль Gmail хранится в виде открытого текста, поэтому файл должен быть доступен только пользователю root:
chmod 600 /etc/postfix/sasl_passwd
FreeBSD:
Конфигурационные файлы Postfix находятся в каталоге /usr/local/etc/postfix. Создайте или отредактируйте файл паролей:
nano /usr/local/etc/postfix/sasl_passwd
Добавьте строку:
[smtp.gmail.com]:587 username@gmail.com:password
Сохраните и закройте файл. Сделать его доступным только для root:
chmod 600 /usr/local/etc/postfix/sasl_passwd
3. Настройка Postfix
Существует шесть параметров, которые должны быть установлены в файле конфигурации Postfix main.cf.
Параметры:
relayhost, который указывает почтовый хост-хост и номер порта. Имя хоста будет заключено в квадратные скобки, чтобы указать, что поиск MX не требуется.
smtp_use_tls, который включает (или отключает) безопасность транспортного уровня.
smtp_sasl_auth_enable, который включает (или отключает) аутентификацию SASL.
smtp_sasl_security_options, который в следующей конфигурации будет установлен пустым, чтобы гарантировать, что никакие параметры безопасности, несовместимые с Gmail, не используются.
smtp_sasl_password_maps, который указывает файл паролей. Этот файл будет скомпилирован и хеширован postmap на следующем шаге.
smtp_tls_CAfile, который указывает список центров сертификации, которые будут использоваться при проверке подлинности сервера.
Debian, Ubuntu, Arch Linux:
Отредактируйте основной файл конфигурации Postfix:
nano /etc/postfix/main.cf
Добавьте или измените следующие значения:
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
Сохраните и закройте файл.
Fedora, CentOS:
Отредактируйте основной файл конфигурации Postfix:
nano /etc/postfix/main.cf
Добавьте или измените следующие значения:
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt
Сохраните и закройте файл.
OpenSUSE:
Отредактируйте основной файл конфигурации Postfix:
nano /etc/postfix/main.cf
Добавьте или измените следующие значения:
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/ca-bundle.pem
Сохраните и закройте файл.
OpenSUSE также требует изменения файла конфигурации главного процесса Postfix master.cf.
Откройте его для редактирования:
nano /etc/postfix/master.cf
Найдите строку, которая гласит:
#tlsmgr unix - - n 1000? 1 tlsmg
Раскомментируйте ее
tlsmgr unix - - n 1000? 1 tlsmg
Сохраните и закройте файл.
FreeBSD:
Отредактируйте основной файл конфигурации Postfix:
nano /usr/local/etc/postfix/main.cf
Добавьте или измените следующие значения:
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/usr/local/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/mail/certs/cacert.pem
Сохраните и закройте файл.
4. Обработка файла паролей
Используйте postmap для компиляции и хэширования содержимого sasl_passwd.
Результаты будут сохранены в вашем каталоге конфигурации Postfix в файле sasl_passwd.db.
Debian, Ubuntu, Fedora, CentOS, OpenSUSE, Arch Linux:
postmap /etc/postfix/sasl_passwd
FreeBSD:
postmap /usr/local/etc/postfix/sasl_passwd
5. Перезапустите Postfix
Перезапустите сервис Postfix, чтобы ваши изменения вступили в силу.
Debian, Ubuntu, Fedora, CentOS, OpenSUSE, Arch Linux:
systemctl restart postfix.service
FreeBSD:
Чтобы запустить службу Postfix только для этого сеанса:
service postfix onestart
Чтобы запустить Postfix автоматически при инициализации системы, откройте /etc/rc.conf на редактирование:
nano /etc/rc.conf
Добавьте строку:
postfix_enable=YES
Сохраните и закройте файл. Затем вы можете запустить:
service postfix start
6. Включить «Небезопасные приложения» в Gmail
По умолчанию для вашей учетной записи Gmail разрешены только самые безопасные входы, такие как вход в Gmail в Интернете.
Чтобы разрешить запросы ретрансляции, войдите в свою учетную запись Gmail и включите Разрешить небезопасные приложения.
Для получения дополнительной информации ознакомьтесь с документом службы поддержки Google Как разрешить небезопасным приложениям доступ к аккаунту
7. Отправить тестовое письмо
Проверьте вашу новую конфигурацию, отправив электронное письмо с помощью команды mail:
Проверьте вашу новую конфигурацию, отправив электронное письмо с помощью команды mail.
mail -s "Test subject" recipient@domain.com
Вам будет представлена пустая строка (или поле CC:, которое вы можете обойти, нажав Enter).
Введите текст вашего сообщения, нажав Enter для новой строки.
Когда вы закончите составлять письмо, введите CTRL-D, чтобы отправить его.
Чтобы отменить электронное письмо, дважды нажмите CTRL-C.
Чтобы отправить заранее составленное письмо, используйте команду:
mail -s "Subject Here" recipient@domain.com < textfile
Где textfile – это имя файла, содержащего текст для отправки.
Поиск проблемы
Если это не работает, проверьте журналы на наличие ошибок Postfix:
Debian:
less /var/log/mail.log
Ubuntu, Fedora, CentOS, OpenSUSE, Arch Linux:
journalctl
FreeBSD:
less /var/log/maillog
Если вы получаете ошибки аутентификации из Gmail, убедитесь, что в настройках учетной записи Gmail включен параметр «Разрешить небезопасные приложения», как указано в шаге 6.
Убедитесь, что файл паролей sasl_passwd существует и что его содержимое правильно отформатировано, как указано в шаге 2.
Если вы вносите какие-либо изменения в файл паролей, обязательно повторите шаги 4 и 5, чтобы хэшировать новый файл паролей, и перезапустите Postfix.
Если вы видите какие-либо ошибки TLS, дважды проверьте конфигурацию в main.cf, как указано в шаге 3.
Если вы внесете какие-либо изменения в конфигурацию, перезапустите Postfix, как указано в шаге 5.