Як налаштувати exim4 для надсилання пошти через захищений паролем поштовий сервер ssl smtp?


19

Я хотів би, щоб мої клопоти могли надсилати пошту з мого домашнього комп’ютера. Мої сервери налаштовують 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'

Однак вдома мій провайдер блокує пошту, надіслану безпосередньо через брандмауер. У мене захищений паролем сервер smsp smsp, через який я міг би направляти пошту, але я невдало з'ясував, як налаштувати exim4, щоб зробити цю роботу. Я сподіваюся, що хтось може надати мені приклад конфігурації, де я можу підключити ім’я хоста, ім’я користувача, пароль та "використовувати ssl", щоб отримати його для надсилання пошти через єдиний сервер smtp.

Відповіді:


25

Нарешті я знайшов детальний набір інструкцій Тоні Скелфо, які насправді працюють . Здається, що ви повинні використовувати захист транспортного рівня (TLS) на порту 587. Я не змусив SSL SMTP працювати.

Спочатку запустіть sudo dpkg-reconfigure exim4-configі скористайтеся цими параметрами налаштування:

  • Загальний тип конфігурації пошти : пошта, що надсилається smarthost; отриманий через SMTP або fetchmail
  • Ім'я системної пошти: <ваше ім'я хоста>
  • IP-адреса для прослуховування для вхідних SMTP-з'єднань: 127.0.0.1
  • Інші напрямки, для яких приймається пошта: <ваше ім'я хоста>
  • Машини для ретрансляції пошти для: <залишити це порожнім>
  • IP-адреса або ім'я хоста для smarthost, що виходить: mail.example.com:what87
  • Сховати ім’я місцевої пошти у вихідній пошті?
    • Так -, як видається, вся вихідна пошта надходить з вашого облікового запису gmail
    • Ні - надіслана пошта з дійсним заголовком імені відправника збереже ім’я відправника
  • Зберегти кількість DNS-запитів мінімальною (Dial-on-Demand)? Ні
  • Спосіб доставки для місцевої пошти: <виберіть ту, яку ви бажаєте>
  • Розділити файл конфігурації на невеликі файли? Так (потрібно редагувати один із файлів далі)

Потім запустіть sudo vi /etc/exim4/passwd.clientі додайте наступні рядки для хоста пошти та будь-яких псевдонімів, які вони мають (знайдені через nslookup). Замініть <адресу електронної пошти> та <password> обліковим записом, через який потрібно відправити пошту):

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
Запустіть CMD

Будь ласка, просто вкажіть мене на правильний напрямок. Я не хочу дублювати якесь питання. Що робити, якщо я хочу, щоб усі користувачі встановлювали свої паролі stmp у своїх довідниках HOME? Буде exim4 шукати різні passwd.client? Tx
д-р Беко

Це звучить як нове запитання для мене
Стівен Остерміллер

@DrBeco Якщо у вас є конкретне запитання, яке не стосується цього питання чи відповіді, будь ласка, задайте це як питання .
Thomas Ward

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, наприклад:

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.