Как настроить exim4 для отправки почты через защищенный паролем почтовый сервер ssl smtp?


19

Я хотел бы, чтобы мои cronjobs могли отправлять почту с моего домашнего компьютера. Мои серверы настраивают exim4 так:

dc_eximconfig_configtype='internet'
dc_other_hostnames=''
dc_local_interfaces='127.0.0.1'
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost=''
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname=''
dc_mailname_in_oh='true'
dc_localdelivery='maildir_home'

Однако дома мой провайдер блокирует почту, отправленную напрямую через брандмауэр. У меня есть защищенный паролем ssl smtp-сервер, через который я мог бы перенаправить почту, но мне не удалось выяснить, как настроить exim4 для этой работы. Я надеюсь, что кто-нибудь может дать мне пример конфигурации, где я могу подключить имя хоста, имя пользователя, пароль и «использовать ssl», чтобы заставить его отправлять почту через один SMTP-сервер.

Ответы:


25

Наконец-то я нашел подробный набор инструкций Тони Сселфо, которые действительно работают . Похоже, что вы должны использовать безопасность транспортного уровня (TLS) на порту 587. Я не получил SSL SMTP для работы.

Сначала запустите sudo dpkg-reconfigure exim4-configи используйте эти параметры конфигурации:

  • Общий тип почтовой конфигурации: почта, отправленная smarthost; получено через SMTP или fetchmail
  • Имя системной почты: <ваше имя хоста>
  • IP-адрес для прослушивания входящих SMTP-соединений: 127.0.0.1
  • Другие направления, для которых принимается почта: <ваше имя хоста>
  • Машины для пересылки почты: <оставьте это поле пустым>
  • IP - адрес или имя хоста исходящего смартхоста: mail.example.com::587
  • Скрыть локальное имя в исходящей почте?
    • Да - вся исходящая почта будет приходить с вашего аккаунта Gmail
    • Нет - письмо, отправленное с действительным заголовком имени отправителя, будет содержать имя отправителя
  • Сохранить количество DNS-запросов минимальным (Dial-on-Demand)? нет
  • Способ доставки локальной почтой: <выберите тот, который вы предпочитаете>
  • Разбить файл конфигурации на маленькие файлы? Да (вам нужно отредактировать один из следующих файлов)

Затем запустите sudo vi /etc/exim4/passwd.clientи добавьте следующие строки для своего почтового хоста и любые псевдонимы, которые у него есть (найдены через nslookup). Замените <адрес электронной почты> и <пароль> учетной записью, через которую вы хотите направлять почту):

mail.example.com:<email address>:<password>
mail.yourhosting.provider:<email address>:<password>

После того, как вы отредактируете passwd.clientфайл, запустите файл, sudo update-exim4.confкоторый интегрирует ваши изменения в конфигурацию Exim4.

Запустите sudo /etc/init.d/exim4 restartи убедитесь, что служба останавливается и запускается правильно. Если служба не может быть перезапущена, возможно, что-то пошло не так при редактировании passwd.clientфайла.

Если Exim4 перезапустился, продолжайте и бегите, sudo tail -f /var/log/exim4/mainlogчтобы посмотреть почтовые журналы. В другом окне отправьте электронное письмо со своей системы и убедитесь, что вы видите в нем запись R=smarthost T=remote_smtp_smarthost H=gmail-smtp-msa.l.google.com ... X=TLS-1.0:RSA_ARCFOUR_MD5:16. В X=TLSозначает , что почта направляется с безопасностью транспортного уровня , который является то , что вы хотите.


1
Нет необходимости «разбивать файл конфигурации на маленькие файлы», так /etc/exim4/passwd.clientкак в любом случае это отдельный файл.
Запуск CMD

Обратите внимание, что указание порта SMTP может работать не на всех почтовых серверах. Но exim4все равно будет использовать TLS с портом SMTP по умолчанию, если почтовый сервер предложит его. Это можно проверить, посмотрев X=информацию в/var/log/exim4/mainlog
Run CMD

Пожалуйста, просто укажите мне правильное направление. Я не хочу дублировать некоторые вопросы. Что если я хочу, чтобы все пользователи устанавливали свои собственные пароли stmp в своих каталогах HOME? Будет ли exim4 искать различные passwd.client? Tx
Dr Beco

Это звучит как новый вопрос для меня
Стивен Остермиллер

@DrBeco Если у вас есть конкретный вопрос, который не относится к этому вопросу или ответу, пожалуйста, задайте его как вопрос .
Томас Уорд

5

Если вашему провайдеру требуется аутентификация, вы должны установить dc_smarthost в качестве имени хоста почтового сервера и комбинации портов, которые использует ваш провайдер, а dc_eximconfig_configtype в значение «smarthost» следующим образом:

dc_eximconfig_configtype='smarthost'
dc_smarthost='mail.example.com::587'

Затем вы можете добавить свои учетные данные, /etc/exim4/passwd.clientнапример, так:

mail.example.com:username:password

Затем любая почта, отправленная через ваш сервер exim4, будет направлена ​​через этот почтовый хост.


10
В update-exim4.conf я вставил два двоеточия для строки smarthost, как в, dc_smarthost='mail.example.com::587'и это имело все значение! Наконец начал отправлять почту через.
Маркос

+1 Это очень распространенная ошибка, которую я видел во многих уроках.
TwystO

4

Это работает очень хорошо для меня. Мой провайдер использует порт 25 и dc_smarthost='myisp.mail.server:25' после изменения этих файлов и выдачи команд:

  1. update-exim4.conf
  2. /etc/init.d/exim4 restart

После того, как я сделал тест, чтобы отправить электронное письмо через образец exim4 classic, как:

echo "content of mail body with pt-br chars ação avião língua é essa em 1609." | mail -s "Confirmar 16DOM" my-user-in-isp@my-domain-url

И это поток нормально папка Входящие my-userв my-domain-url.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.