Назад | Перейти на главную страницу

Настройка sendmail для использования Gmail с SMTP в цифровом океане

Я выполнил эти инструкции, и у меня это работает из командной строки. Я запускаю тест из командной строки так:

echo "Just testing my sendmail gmail relay" \
| mail -s "Sendmail gmail Relay" my-email@example.com

Есть задержка, но в конечном итоге письмо отправляется ...

Когда я вызываю mail () из php, он выходит из строя или умирает с ошибкой «504 Gateway Time-out».

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

В журналах ничего не нахожу. Я перезапустил сервер, но не могу придумать, что еще попробовать ... Я считаю, что хосты настроены правильно:

127.0.1.1 server-name
127.0.0.1 localhost

Я не знаю, что еще попробовать ...

Какие-нибудь подсказки, идеи или советы?

Ни то, ни другое server-name ни localhost полностью квалифицированы; вместо этого полное имя хоста выглядит как server-name.example.org или localhost.localdomain. sendmail покажет, какие доменные имена он использует с помощью команды

sendmail -d0.1 < /dev/null

Также может быть полезно найти журналы электронной почты в вашей системе (это зависит от syslog конфигурация демона) и посмотрите, какой именно sendmail процесс (или процессы) жалуются на что, поскольку я не знаю, проходит ли ваш PHP-код sendmail как и ваш пример командной строки (sendmail -> MSA -> MTA) или отправляется ли он непосредственно в MTA через SMTP.

Sendmail сильно зависит от правильно настроенного DNS; вы можете попытаться обойти это через

    FEATURE(`nocanonify', `canonify_hosts')
    define(`confDIRECT_SUBMISSION_MODIFIERS', `C')

в submit.mc конфигурация, хотя это может привести к поломке (и без журналов я не знаю, является ли это источником проблемы). Вам также может потребоваться настроить маскарад, чтобы адреса были должным образом стандартизированы, прежде чем они будут отправлены в Gmail.

Еще один вариант - отправить почту через что-то вроде ssmtp.