Вопрос или проблема
Я запускал этот код в bash, чтобы отправить email с сервера Ubuntu
#!/bin/bash
# Переменные
recipient="[email protected]"
subject="Тема письма"
body="Это тело письма."
# Попытка отправить email
if echo "$body" | mail -s "$subject" "$recipient"; then
echo "Email успешно отправлен на $recipient."
else
echo "Не удалось отправить email на $recipient. Пожалуйста, проверьте конфигурацию почты."
fi
Мне удалось отправить email на Proton Mail, хотя Proton получил email в папке спам, но с Gmail это не работает
при использовании tail -f /var/log/mail.log
для отслеживания логов я получаю следующий ответ
Dec 29 15:06:04 xxx postfix/pickup[443359]: 1FA128B02B: uid=1000 from=<azureuser@xxx.msh1giz1qitexf4gtqk2kxjeud.phxx.internal.cloudapp.net>
Dec 29 15:06:04 xxx postfix/cleanup[443922]: 1FA128B02B: message-id=<20241229150604.1FA128B02B@xxx.msh1giz1qitexf4gtqk2kxjeud.phxx.internal.cloudapp.net>
Dec 29 15:06:04 xxx postfix/qmgr[443360]: 1FA128B02B: from=<azureuser@xxx.msh1giz1qitexf4gtqk2kxjeud.phxx.internal.cloudapp.net>, size=526, nrcpt=1 (queue active)
Dec 29 15:06:05 xxx postfix/smtp[443924]: 1FA128B02B: to=<[email protected]>, relay=gmail-smtp-in.l.google.com[142.251.2.27]:25, delay=0.89, delays=0.02/0.01/0.46/0.39, dsn=5.7.26, status=bounced (host gmail-smtp-in.l.google.com[142.251.2.27] said: 550-5.7.26 Ваш email был заблокирован, так как отправитель не аутентифицирован. 550-5.7.26 Gmail требует, чтобы все отправители аутентифицировались с помощью SPF или DKIM. 550-5.7.26 550-5.7.26 Результаты аутентификации: 550-5.7.26 DKIM = проверка не пройдена 550-5.7.26 SPF [openvpn.msh1giz1qitexf4gtqk2kxjeud.phxx.internal.cloudapp.net] 550-5.7.26 с ip: [20.163.28.40] = проверка не пройдена 550-5.7.26 550-5.7.26 Для инструкций по настройке аутентификации, перейдите по ссылке 550 5.7.26 https://support.google.com/mail/answer/81126#authentication d2e1a72fcca58-72aad83ae40si25723079b3a.1 - gsmtp (в ответ на окончание команды DATA))
Dec 29 15:06:05 xxx postfix/cleanup[443922]: 234AB8B02C: message-id=<20241229150605.234AB8B02C@openvpn.msh1giz1qitexf4gtqk2kxjeud.phxx.internal.cloudapp.net>
Dec 29 15:06:05 xxx postfix/bounce[443925]: 1FA128B02B: уведомление о недоставке отправлено: 234AB8B02C
Dec 29 15:06:05 xxx postfix/qmgr[443360]: 234AB8B02C: from=<>, size=4316, nrcpt=1 (queue active)
Dec 29 15:06:05 xxx postfix/qmgr[443360]: 1FA128B02B: удалён
Dec 29 15:06:05 xxx postfix/local[443928]: 234AB8B02C: to=<azureuser@xxx.msh1giz1qitexf4gtqk2kxjeud.phxx.internal.cloudapp.net>, relay=local, delay=0.03, delays=0.01/0/0/0.02, dsn=2.0.0, status=sent (доставлено в почтовый ящик)
Dec 29 15:06:05 openvpn postfix/qmgr[443360]: 234AB8B02C: удалён
необходимо ли настраивать SPF или DKIM?
Ответ или решение
Чтобы решить проблему с отправкой писем с вашего сервера на Gmail, необходимо обратить внимание на ряд важных технических аспектов, связанных с аутентификацией отправителя. Эта проблема часто возникает из-за отсутствия надлежащей настройки SPF (Sender Policy Framework) и DKIM (DomainKeys Identified Mail), которые относятся к методам аутентификации электронной почты.
1. Разбор ошибки
Ваши лог-файлы (/var/log/mail.log
) указывают на конкретную ошибку аутентификации, предоставленную Google:
- DSN=5.7.26, status=bounced: Это код статуса, который указывает на проблему с аутентификацией отправителя.
- 550-5.7.26 Gmail требует аутентификации всех отправителей с помощью SPF или DKIM.
2. Рекомендации по настройке
Настройка SPF
SPF помогает получать серверам подтвердить, что ваши домены разрешены для отправки электронной почты от имени вашего сервера. Чтобы настроить SPF:
- В DNS-записях вашего домена добавьте TXT-запись. Например:
v=spf1 ip4:YOUR_SERVER_IP -all
Замените
YOUR_SERVER_IP
на фактический IP-адрес вашего сервера. Эта запись сообщает, что только указанный IP-адрес может отправлять электронные письма от имени вашего домена.
Настройка DKIM
DKIM позволяет получателю проверить, что email сообщение действительно было отправлено с разрешенного источника и не было изменено в пути:
-
Установите и настройте OpenDKIM на вашем сервере.
-
Добавьте следующий DNS TXT-запись для вашего домена:
default._domainkey.YOURDOMAIN.com IN TXT ( "v=DKIM1; k=rsa; p=YOUR_PUBLIC_KEY" )
Замените
YOUR_PUBLIC_KEY
на фактический публичный ключ, сгенерированный DKIM.
Тестирование
После настройки SPF и DKIM важно протестировать их работу, используя инструменты для проверки конфигурации электронной почты, такие как Mail-Tester или dmarcian.
3. Заключение
Настройка SPF и DKIM не только позволяет корректную отправку писем на Gmail, но и увеличивает доверие ко всем Вашим сообщениям, уменьшая риск попадания во входящие папки спама. Эти меры также помогут обеспечить защиту вашего домена от фишинга и других вредоносных атак.
Правильно настроив ваши SPF и DKIM, вы улучшите доставку вашей корреспонденции и повысите общую безопасность вашей почты. Следуйте детальным инструкциям и рекомендациям по настройке, и не забудьте периодически проверять их функционирование и обновлять данные в DNS, если это необходимо.