Наверняка вас есть учетная запись 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.
Спасибо
Но письма адресатам не отправляются ошибок не вижу.
Все пункты уже проверил.
Аналогично.
Не работает.
100 раз все проверил
Где-то что то важное упущено.
status=deferred (SASL authentication failed; cannot authenticate to server smtp.gmail.com[142.251.1.109]: no mechanism available)