Ниже настройка sendmail на Ubuntu с отправкой через Gmail SMTP (smart host). Предполагаю, что нужно, чтобы сайт (PHP mail()) отправлял письма через ваш Gmail-аккаунт.
1. Пароль приложения в Gmail
Обычный пароль не подойдёт. Включите двухфакторную аутентификацию в аккаунте Google, затем создайте пароль приложения: Аккаунт Google → Безопасность → Пароли приложений. Получите 16 символов, дальше они используются как APP_PASSWORD.
2. Установка
bash
sudo apt update
sudo apt install sendmail sendmail-cf m4 ca-certificates
3. Файл с логином
bash
sudo mkdir -m 700 /etc/mail/authinfo
cd /etc/mail/authinfo
sudo nano gmail-auth
Содержимое (одной строкой):
AuthInfo: «U:root» «I:your_account@gmail.com» «P:APP_PASSWORD»
Затем создайте хеш-базу:
bash
sudo makemap hash gmail-auth < gmail-auth
sudo chmod 600 gmail-auth gmail-auth.db
4. Правка sendmail.mc
bash
sudo cp /etc/mail/sendmail.mc /etc/mail/sendmail.mc.bak
sudo nano /etc/mail/sendmail.mc
Добавьте перед первой строкой MAILER(local)dnl (обычно в конце файла):
define(`SMART_HOST',`[smtp.gmail.com]')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
define(`ESMTP_MAILER_ARGS', `TCP $h 587')dnl
define(`confAUTH_OPTIONS', `A p')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
FEATURE(`authinfo',`hash -o /etc/mail/authinfo/gmail-auth.db')dnl
Если нужно, чтобы письма не шли на внешние адреса напрямую, а только через Gmail, оставьте DAEMON_OPTIONS только на 127.0.0.1 (по умолчанию так и есть).
5. Пересборка конфига и перезапуск
bash
sudo sendmailconfig # на все вопросы Y
# либо вручную:
# cd /etc/mail && sudo m4 sendmail.mc > sendmail.cf
sudo systemctl restart sendmail
6. Имя хоста
В /etc/hosts добавьте FQDN:
127.0.0.1 localhost website.teamcccp.ru
И проверьте hostname -f.
7. Проверка
bash
echo «Test body» | mail -s «Test» you@example.com
sudo tail -f /var/log/mail.log