Получение “553 Ретрансляция запрещена как @” при отправке писем с помощью msmtp через cron.

Вопрос или проблема

Я настроил msmtp на своем сервере для отправки писем через Zoho. Для этого я настроил явный адрес отправителя ([email protected] для этого примера) в конфигурации msmtp:

defaults

account default
auth on
from [email protected]
host smtp.zoho.eu
logfile ~/.msmtp.log
passwordeval cat /secrets/smtp_password.txt
port 587
tls on

Это, конечно, необходимо, потому что Zoho будет принимать только письма с этим адресом отправителя.

И когда я использую его в командной строке, все работает идеально:

echo -e "subject: test\n\nhello" | msmtp -- [email protected]

Логи показывают, что это работает, и я получаю свое письмо:

Sep 25 09:01:55 host=smtp.zoho.eu tls=on auth=on user=user [email protected] [email protected] mailsize=164 smtpstatus=250 smtpmsg='250 Message received' exitcode=EX_OK

Но когда я настраиваю crontab:

[email protected]
[email protected]
0 * * * * myuser echo 'not working' && exit 1

Я получаю это в своем журнале msmtp:

Sep 25 09:00:38 host=smtp.zoho.eu tls=on auth=on user=user [email protected] [email protected] smtpstatus=553 smtpmsg='553 Relaying disallowed as @' errormsg='сервер не принял письмо' exitcode=EX_UNAVAILABLE

Мне это странно, адрес отправителя в журнале правильный, но ошибка означает, что я установил неправильный адрес отправителя, или нет?

Настройка cron устанавливает адрес отправителя другим способом, который я не вижу в логах?
Могу ли я это изменить?

Ответ или решение

Чтобы решить проблему с ошибкой "553 Relaying disallowed as @" при отправке писем через msmtp с использованием cron, необходимо обратить внимание на несколько возможных причин и настроек.

1. Фоновый процесс cron и переменные окружения

При запуске задач через cron среда отличается от вашей обычной пользовательской среды. Это может означать, что некоторые переменные окружения, необходимые для корректной работы msmtp, отсутствуют.

2. Настройка msmtp в crontab

Убедитесь, что в вашем crontab правильно указаны переменные, если они требуются. Например, ваш crontab может выглядеть так:

MAIL_FROM="[email protected]"
0 * * * * myuser echo 'not working' | msmtp --from="$MAIL_FROM" -- "$RECIPIENT_EMAIL"

3. Ошибка "Relaying disallowed"

Это сообщение об ошибке указывает на то, что сервер не принимает почту с указанным адресом отправителя. Ваша конфигурация для msmtp должна являться единственной причиной ее возникновения. Убедитесь, что в конфигурации msmtp указаны верные данные для аутентификации и адреса отправителя. Проверьте следующее:

  • Убедитесь, что вы используете правильный адрес, который разрешён для отправки через аккаунт Zoho.
  • Проверьте, чтобы в конфигурационном файле msmtp (обычно в ~/.msmtprc) адрес отправителя совпадал с тем, что разрешает сервер.

Если вы хотите определить, как именно cron отправляет почту, вы можете добавить отладочные сообщения (например, в лог) или использовать logger для регистрации событий.

4. Прямое указание адреса в командной строке

Вы также можете прямо указать адрес отправителя в команде cron:

0 * * * * myuser echo 'not working' | msmtp --from="[email protected]" -- "[email protected]"

Это гарантирует, что адрес отправителя установлен явно.

5. Изоляция проблемы

Для управления журналами и отладки выполните следующее:

  • Проверьте официальную документацию msmtp для любых специальных параметров, которые могут потребоваться для вашего случая.
  • Используйте mail или другие инструменты для проверки, корректно ли отправляется почта из cron-среды.

6. Проверка логов

Обратите внимание на логи msmtp, чтобы выявить более подробную информацию об ошибке. Если вы видите одну и ту же ошибку, как упоминалось в вашем вопросе, возможно, вы столкнулись с конфигурационной проблемой, которая не была учтена.

Если все вышеуказанные шаги не помогли, рекомендуется:

  • Проверить настройки вашего SMTP-сервера на предмет разрешений и параметров.
  • Обратиться в службу поддержки Zoho для получения дополнительных рекомендаций и уточнений, касающихся их политики.

Заключение

Следуя данным рекомендациям, вы сможете устранить проблему с ошибкой "553 Relaying disallowed as @", и ваши задачи в cron будут успешно отправлять почту через msmtp.

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

Капча загружается...