Я установил (чистый) Debian 6 на VPS, и я запускаю на нем приложение на базе Django. Все работает нормально, за исключением того, что мне нужно настроить SMTP, чтобы мое приложение (то есть отправитель является локальным) могло отправлять электронные письма своим пользователям (так что получатели находятся в другом месте в Интернете).
Какой способ сделать это проще всего? Debian обычно поставляется с exim4
, но у меня проблемы с его настройкой для выполнения этой основной задачи. Есть ли какой-нибудь учебник или набор основных шагов, которые мне нужно проверить?
Мне сейчас не нужна местная доставка по электронной почте.
Когда я пытаюсь отправить электронную почту, используя конфигурацию по умолчанию, вот что я получаю /var/log/exim/mainlog
(заменил два домена на foo.com и bar.com):
2011-08-27 18:05:27 1QxLNv-0008EL-60 <= jablan@foo.com H=localhost (foo.com) [127.0.0.1] P=esmtp S=2438
2011-08-27 18:05:27 1QxLNv-0008EL-60 remote host address is the local host: bar.com
2011-08-27 18:05:27 1QxLNv-0008EL-60 == jablan@bar.com R=smarthost defer (-1): remote host address is the local host
2011-08-27 18:05:27 1QxLNv-0008EN-7y <= <> R=1QxLNv-0008EL-60 U=Debian-exim P=local S=567
2011-08-27 18:05:27 1QxLNv-0008EL-60 Frozen
2011-08-27 18:05:27 1QxLNv-0008EN-7y remote host address is the local host: foo.com
2011-08-27 18:05:27 1QxLNv-0008EN-7y == jablan@foo.com <postmaster@foo.com> R=hub_user_smarthost defer (-1): remote host address is the local host
2011-08-27 18:05:27 1QxLNv-0008EN-7y Frozen
Ваш exim4 неправильно настроен.
Вам нужно выяснить, как лучше всего отправлять электронную почту от вашего VPS-провайдера. Это может быть либо через их SMTP-сервер, что означает, что вам необходимо настроить его для smarthost или он может быть доставлен напрямую вашим VPS, что означает, что вам необходимо настроить его как полный Интернет сайт.
В любом случае измените конфигурацию вашего exim4, выполнив:
# sudo dpkg-reconfigure exim4-config
Здесь вы можете выбрать:
internet site; mail is sent and received directly using SMTP
mail sent by smarthost; received via SMTP or fetchmail
mail sent by smarthost; no local mail
local delivery only; not on a network
no configuration at this time
Перенастройте его соответствующим образом.
«Адрес удаленного хоста - это локальный хост» означает, что вы сделали одно из двух:
Учитывая, что Exim вздыхает о smarthosts, я бы сказал, что у вас есть первое.
Если вы сконфигурируете установку Exim с помощью верный smarthost (обычно это ваш интернет-провайдер или MSP), он определенно ... ну, не обязательно сработает, но, по крайней мере, даст вам другую ошибку.