Наверняка вас есть учетная запись Gmail. В таком случае вы можете настроить свой MTA для отправки исходящей почты через Gmail. Это дает вам преимущество надежности инфраструктуры Gmail и предоставляет простые средства отправки электронной почты из командной строки.

В качестве MTA (Mail Transfer Agent) мы будем использовать Postfix. Postfix – это бесплатный, активно поддерживаемый и высоконадежный агент передачи почты.

На каждом этапе мы рассмотрим инструкции, относящиеся к следующим операционным системам:

Debian 9
Ubuntu 18.04 LTS
CentOS 7
OpenSUSE Leap 15.0
Arch Linux 2019.03.01

Мы также установим mailutils / mailx, чтобы мы могли отправлять почту из командной строки. При необходимости мы установим дополнительные библиотеки SASL.

1. Установим необходимое программное обеспечение

Ubuntu, Debian:

apt-get update && apt-get install postfix mailutils

Когда вам будет предложено ввести «Почтовое имя», выберите имя хоста, которое будет использоваться в заголовках писем в качестве источника ваших писем. Полное доменное имя является предпочтительным, но если указать простое имя вашей машины все тоже будет работать. Независимо от того что вы здесь введете ваш обратный адрес будет отображаться для получателей как ваш адрес Gmail.

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

2. Настройка аутентификации в Gmail

Создайте или измените файл паролей, который будет использовать Postfix для аутентификации в Gmail. Замените имя пользователя своим именем пользователя и паролем 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

3. Настройка Postfix

В файле конфигурации Postfix main.cf присутствуют шесть параметров, которые должны быть установлены:

1. relayhost – указывает почтовый хост и номер порта. Имя хоста будет заключено в квадратные скобки, чтобы указать, что поиск MX не требуется.

2. smtp_use_tls – включает (или отключает) безопасность транспортного уровня.

3. smtp_sasl_auth_enable – включает (или отключает) аутентификацию SASL.

4. smtp_sasl_security_options – в нашей конфигурации будет установлен пустым, чтобы гарантировать, что никакие параметры безопасности, несовместимые с Gmail, не используются.

5. smtp_sasl_password_maps – указывает на файл паролей. Этот файл будет скомпилирован и хеширован postmap на следующем шаге.

6. 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

Сохраните и закройте файл.

4. Обработка файла паролей

Используйте postmap для компиляции и хэширования содержимого sasl_passwd. Результаты будут сохранены в вашем каталоге конфигурации Postfix в файле sasl_passwd.db

Debian, Ubuntu, Fedora, CentOS, OpenSUSE, Arch Linux:

postmap /etc/postfix/sasl_passwd

5. Перезапустим Postfix

Перезапустите Postfix, чтобы ваши изменения вступили в силу.

Debian, Ubuntu, Fedora, CentOS, OpenSUSE, Arch Linux:

systemctl restart postfix.service

6. Включите «разрешить небезопасным приложениям доступ к аккаунту» в Gmail

Откройте страницу Аккаунт Google

На панели навигации слева выберите Безопасность.
В разделе Ненадежные приложения, у которых есть доступ к аккаунту в нижней части страницы нажмите Открыть доступ.

Для получения дополнительной информации ознакомьтесь с документом службы поддержки Google «Предоставление менее защищенным приложениям доступа к вашей учетной записи».

7. Отправить тестовое письмо

Проверьте вашу новую конфигурацию, отправив электронное письмо с помощью команды mail. В командной строке выполните:

mail -s "Test " recipient@domain.com

Вам будет представлена ​​пустая строка (или поле CC:, которое вы можете пропустить, нажав Enter). Введите текст вашего сообщения, нажимая Enter для перехода на новую строку. Когда вы закончите составлять письмо, нажмите CTRL-D, чтобы отправить его. Чтобы отменить электронное письмо, дважды нажмите CTRL-C .

Чтобы отправить заранее составленное письмо, используйте команду:

mail -s "Test" recipient@domain.com < textfile

Где textfile – это имя файла, содержащего текст для отправки.

Поиск проблемы
Если что-то не работает,  проверьте журналы на наличие ошибок Postfix:

Debian:

less /var/log/mail.log

Ubuntu, Fedora, CentOS, OpenSUSE, Arch Linux:

journalctl

Если вы получаете ошибки аутентификации из Gmail, убедитесь, что в настройках учетной записи Gmail включен параметр «Разрешить небезопасным приложениям доступ к аккаунту» , как указано в разделе 6.

Убедитесь, что файл паролей sasl_passwd существует и что его содержимое правильно отформатировано, как указано в разделе 2. Если вы вносите какие-либо изменения в файл паролей, обязательно повторите то, что указано в разделах 4 и 5, чтобы хэшировать файл нового пароля и перезапустить Postfix.

Если вы видите какие-либо ошибки TLS, внимательно проверьте файл main.cf, как указано в разделе 3. Если вы внесете какие-либо изменения в конфигурацию, не забудьте перезагрузить Postfix.

Отправка почты из Postfix через Gmail

2 мыслей о “Отправка почты из Postfix через Gmail

  • 22.11.2020 в 14:33
    Постоянная ссылка

    Спасибо
    Но письма адресатам не отправляются ошибок не вижу.
    Все пункты уже проверил.

    Ответ
    • 08.01.2022 в 11:24
      Постоянная ссылка

      Аналогично.
      Не работает.
      100 раз все проверил
      Где-то что то важное упущено.

      status=deferred (SASL authentication failed; cannot authenticate to server smtp.gmail.com[142.251.1.109]: no mechanism available)

      Ответ

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *