Какой вариант («Интернет-сайт», «Интернет со смарт-хостом», «спутниковая система») мне выбрать в конфигурации постфикса?


( NB: В описании награды выше есть небольшая опечатка. См. Раздел ИЗМЕНИТЬ в конце сообщения.)


Когда я пытаюсь установить postfix на моем домашнем компьютере, я получаю диалоговое окно конфигурации со следующими параметрами 1 :

  1. Нет конфигурации: Следует выбрать, чтобы оставить текущую конфигурацию без изменений.
  2. Интернет-сайт: Почта отправляется и принимается напрямую с использованием SMTP.
  3. Интернет со смарт-хостом: Почта принимается напрямую через SMTP или с помощью такой утилиты, как fetchmail. Исходящая почта отправляется через смартхост.
  4. Спутниковая система: Вся почта отправляется на другую машину, называемую «умным хостом», для доставки.
  5. Только локальный: Единственная доставляемая почта - это почта для локальных пользователей. Нет сети.

Мой основной интерес состоит в том, чтобы иметь возможность для неинтерактивных программ, работающих на моем компьютере (в основном, демонов и заданий cron), отправлять уведомления на мой мобильный телефон (либо на мой текущий адрес электронной почты, либо в клиент SMS на моем мобильном телефоне. ).

Было бы очень удобно, если бы такие уведомления могли также отправляться локально корневому пользователю , но это вторичное требование.

Моя настольная система подключается к Интернету через интернет-провайдера (Xfinity).


Я полагаю, что вариант 1 исключен изначально.

Требование иметь возможность отправлять почту на мой текущий (т.е. не "местный") адрес электронной почты исключает вариант 5.

Остались варианты 2, 3 и 4, но я не могу понять из описания выше, которые я должен выбрать.


РЕДАКТИРОВАТЬ: В описании награды есть опечатка (которую, к сожалению, я больше не могу исправить); где написано

... что именно представляет собой "Интернет-сайт", указанный в опции ( 1 ), ...

должно быть

... что именно " Интернет-сайт ", упомянутый в варианте ( 2 ), ...


РЕДАКТИРОВАТЬ 2: Прочитав первый ответ на мой вопрос, я понял, что написанное мной описание награды недостаточно ясно . В этом описании я даю (вымышленные, но реалистичные) значения для моего адреса электронной почты, провайдера и имени хоста. Я также прошу избегать таких значений-заполнителей, как www.example.org . Я поместил все эти условия в описание награды, потому что я хотел бы, чтобы ответ включал файл конфигурации postfix для варианта использования, указанного в исходном вопросе.Мне очень жаль, что я не сказал об этом явно в описании награды (хотя именно это я имел в виду под «подробными инструкциями»).


1 Описания различных параметров дословно копируются из диалогового окна.

4
задан 18 April 2021 в 14:38

4 ответа

Основные опции объяснены

Интернет-сайт: Почта отправляется и принимается непосредственно по SMTP.

Эта опция требует наличия полного доменного имени и полного доступа для изменения записей DNS для этого доменного имени, так как этот метод требует добавления записи MX и обратного DNS для отправки и приема электронной почты.

Интернет со smarthost : Почта принимается непосредственно по SMTP или запущенной утилитой, такой как fetchmail. Исходящие сообщения отправляются с помощью smarthost.

Эта опция требует наличия полного доменного имени, но не обязательно полного доступа для изменения записей DNS для этого доменного имени. Вы платите провайдерам почтовых услуг или smarthosts за отправку писем от вашего имени и предоставляете маршрут/метод отсеивания входящих писем на вашу машину либо обрабатывая MX и другие записи DNS для вашего доменного имени, либо получая их на своих серверах и предоставляя вам адрес почтового сервера, порт и учетные данные, так что вы можете периодически получать входящую почту, используя различные протоколы, такие как POP и IMAP.

Спутниковая система: Вся почта отправляется на другую машину, называемую "smarthost", для доставки.

Эта опция не требует наличия полного доменного имени или доступа для изменения записей DNS. Это то, что служит вашей цели, как описано в вашем вопросе .

Настройка реле электронной почты

1. Общие настройки

Вы можете перенастроить постфикс и выбрать правильную опцию следующим образом:

sudo dpkg-reconfigure postfix

На экранах конфигурации вы увидите:

  • Общий тип настройки почты: Отсюда выберите Спутниковая система.

  • Имя системной почты: Введите имя хоста вашей машины, которое, скорее всего, будет отображаться по умолчанию.

  • SMTP хост ретрансляции (пусто): Не имеет значения на данном этапе, так как вы установите его снова при изменении /etc/postfix/main.cf, поэтому оставьте значение по умолчанию.

  • Получатель корневой и основной почты: Оставьте пустым, чтобы локальная почта доставлялась postmaster, который определен в /etc/aliases в /var/mail/nobody, или установите, чтобы пользователь системы получал его вместо этого.... Это не имеет никакого отношения к пересылке сообщений электронной почты. Это для того, чтобы обрабатывать письма, отправленные локально, например, root@localhost или другим учетным записям локальных пользователей, которые могут быть в /etc/aliases, которые будут иметь нечто подобное:

    # Смотрите псевдонимы man 5 для формата
    почтмейстер: корень
    
  • Другие пункты назначения для приема почты (пустое "ни за что"): Это имена хостов, для которых при установке постфиксов будет приниматься электронная почта... Поэтому оставьте по умолчанию эти имена хостов, которые будут возможны только для вашей текущей машины.

  • Принудительное синхронное обновление в почтовой очереди?: Это говорит postfix реализовать некую внутреннюю систему журнализации, которая будет замедлять ее, но это необходимо, когда ваша файловая система не является файловой системой с журналами, что не так в случае с файловой системой ext4 в Ubuntu... Поэтому выберите No .

  • Локальные сети: Аналогично вышеприведенному пункту "Другие пункты назначения для приема почты".... Это функция безопасности, так что другие хосты в вашей сети или за ее пределами не могут посылать почту через ваш постфиксный экземпляр... Поэтому оставьте по умолчанию.

  • Ограничение размера почтового ящика (байты): Пояснения к себе... Рекомендую оставить по умолчанию, т.е. неограниченным.

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

  • Интернет-протоколы для использования: Оставьте на все , если не знаете, что делаете.... все должны работать нормально.

Стоит отметить, что если вы редактируете /etc/postfix/main.cf после слов, то не имеет значения, какую опцию вы выбрали при начальной конфигурации, и многие руководства советуют выбирать различные опции... сравните this и this.... Например, в одном руководстве рекомендуется выбрать Internet Site, а затем после слов изменить /etc/postfix/main.cf и установить relayhost, который будет менять постфикс с автономного почтового сервера на ретрансляционный, т.е. так, как будто опция была изменена на Satellite System!

Для опции ретрансляции /etc/postfix/main.cf будет установлено что-то с relayhost на провайдера электронной почты, например:

relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

2. Специальные настройки провайдера электронной почты

После этого следуйте специальным инструкциям провайдера электронной почты для интеграции постфиксов, например:

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

Пожалуйста, обратите внимание на конкретные требования поставщика услуг ретрансляции электронной почты, например, включение менее безопасных приложений для Gmail или в противном случае постфикс будет запрещен доступ и соединение с Gmail.

Дополнительные ресурсы

4
ответ дан 23 April 2021 в 23:22

The Issue

"Мой основной интерес заключается в том, чтобы иметь возможность для неинтерактивных программ, запущенных на моем рабочем столе (в основном демонов и заданий cron), отправлять уведомления на мой мобильный телефон (либо на мой текущий электронный адрес, либо на SMS-клиент на моем мобильном телефоне)"

The Alternative

In my answer for How I set Cron to send emailmail? [дублировать] Я использовал ssmtp. В том же потоке вы найдете решение, используя постфикс , который может вас заинтересовать.

Что касается получения текстовых сообщений с мобильного телефона, то у меня есть другой ответ:

Если вы хотите получить только постфиксное решение, то здесь вы найдете хорошее руководство:

0
ответ дан 23 April 2021 в 23:22

На самом деле, ни один из этих вариантов конфигурации не может быть непосредственно использован на типичной домашней машине конечного пользователя. Вариант 2 хорошо работает, если у вас есть хостинговый сервер с собственным доменным именем, на котором вы настраиваете Postfix. Варианты 3 и 4 хорошо работают, например, в корпоративной сети, где у вас есть "настоящий" домен, распознаваемый в DNS, частью которого являются ваши клиентские машины (кстати, я не до конца понимаю разницу между вариантами 3 и 4 только из описания - мне нужно увидеть реальные конфигурационные файлы, генерируемые этими опциями, чтобы знать наверняка, что они на самом деле означают).

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

Электронная почта, наверное, самая сложная из всех сетевых служб, и поэтому я бы посоветовал никогда не полагаться "вслепую" на те настройки по умолчанию, которые предоставляет автоматическая настройка, а вместо этого узнать о том, как работает конфигурация Postfix, и сделать все необходимые исправления в конфигурационном файле(ах) вручную. И вам нужно протестировать, протестировать и ещё раз протестировать вашу конфигурацию, чтобы быть уверенным, что всё работает, как задумано. Конфигурация электронной почты - это не то, что можно просто "скопировать и вставить", не понимая, как она работает.

Хорошим началом является http://www.postfix.org/BASIC_CONFIGURATION_README.html - этот документ задает некоторые основные вопросы, на которые вам нужно ответить перед тем, как вы начнете конфигурирование Postfix, и объясняет основные концепции конфигурации. После того, как вы прочитаете это, посмотрите на http://www.postfix.org/STANDARD_CONFIGURATION_README.html - в нем представлены конфигурации для нескольких типичных сценариев. Однако, как и в случае с меню конфигурации, о котором вы спрашивали, ни один из этих сценариев не применим в вашем случае в полной мере.

Вероятно, наиболее близким к вашим потребностям является сценарий, описанный как "Постфикс на нулевом клиенте", однако есть две вещи, которые не покрываются. Нулевой клиент" в этом примере - это машина, которая: a) не получает никакой почты из сети; b) не доставляет почту локально - однако, если вам это нужно, это можно изменить (но я не буду описывать это здесь, так как этот ответ уже очень длинный); c) отправляет всю исходящую почту на smarthost, т.е. сервер, который обрабатывает всю почту для домена, который вы отправляете как - в вашем случае это, вероятно, будет сервер Yahoo, тот же самый сервер, который вы используете при отправке почты с почтового клиента.

Чуть позже я расскажу, почему вам нужно использовать smarthost. Единственная важная вещь, которая здесь отсутствует, это то, что в вашем случае ваш Postfix должен будет аутентифицировать на smarthost. Это здесь: http://www.postfix.org/SOHO_README.html

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

Почему все так сложно? Как правило, потому что на вашей машине нет "правильного" доменного имени, которое будет распознаваться в Интернете. Вы можете использовать любую опцию - 2,3 или 4 - в начальной конфигурации, и ваш Postfix сможет отправлять почту, однако, возможность отправлять почту - это одно; получить вашу почту на самом деле доставленную по назначению - это совсем другое. Различные меры по борьбе со спамом, обычно используемые в Интернете, могут привести к тому, что ваша почта просто будет отклонена принимающим сервером, если вы используете конфигурацию по умолчанию. Вот почему необходимы изменения.

Источником проблемы является то, что каждое письмо, которое вы отправляете, должно иметь некоторый почтовый адрес отправителя. Если бы вашей машине было присвоено "законное" доменное имя, вы могли бы просто настроить его, используя опцию 2, и отправлять сообщения, используя user@domain в качестве адреса электронной почты, где user - это любое имя пользователя на вашей машине, отправляющего электронную почту, а domain - это имя домена, присвоенное вашей машине.

Но у вас нет надежного домена . Итак, первое, что необходимо учитывать - какой адрес отправителя вы хотите использовать для своей электронной почты? Наверное, самый безопасный вариант - это использовать ваш реальный адрес электронной почты nosuch0000@yahoo.com. Иначе - если вы не установите адрес отправителя в программе-отправителе - Postfix составит некоторое доменное имя по умолчанию, и будет посылать, например, почту с вашего задания cron как "root@myubuntubox.localdomain" ("localdomain" здесь дословно означает "локальный домен"). Так как домен myubuntubox.localdomain не существует в Интернете, то принимающий сервер, скорее всего, не примет это сообщение, и вы увидите в журнале Postfix отказ.

Итак, вы должны убедиться, что каждая программа, которая будет посылать почту, предоставит правильный адрес отправителя. Это в основном выходит за рамки настройки Postfix. Вы должны настроить его в каждой программе или скрипте, который будет отправлять почту. Можно заставить Postfix переписать любой адрес отправителя, используемый для nosuch0000@yahoo.com, но это более сложная функция, и вы должны уже иметь рабочую конфигурацию (и знать что-то о настройке Postfix) перед тем, как попробовать это сделать. Так что лучше сделать это на стороне клиента.

Но отправка с почтовым адресом из домена yahoo.com также проблематична, так как IP-адрес вашей машины не принадлежит к пулу адресов, назначенных Yahoo. Принимающий сервер может его обнаружить, а также отклонить вашу почту. И поэтому вам нужно использовать smarthost - это то, что происходит в вариантах 3 и 4. Ваша машина будет передавать всю почту на smarthost, а smarthost будет посылать её дальше.

Однако, вы не можете просто передать почту на сервер Yahoo, как в конфигурации по умолчанию для "Postfix на нулевом клиенте", потому что в этом примере предполагается, что smarthost "доверяет" вашей машине и будет принимать почту с этой машины со smarthost доменом в адресе отправителя. Но сервер Yahoo не будет просто доверять вашей машине и позволять ей посылать почту как yahoo.com. Он почти наверняка отвергнет такую почту.

И вот третья и самая сложная часть: вам не нужно отправлять свою почту на smarthost, а отправить ее. Отправка - это то, что делают почтовые клиенты, такие как Outlook или Thunderbird. Они подключаются не к порту электронной почты по умолчанию на сервере (25), а к специальному порту отправки (587 или 465, в зависимости от используемого клиентом метода шифрования), аутентифицируют на сервере, используя логин и пароль Yahoo, а затем пересылают почту. После того, как клиент аутентифицируется на сервере, сервер доверяет ему и будет принимать от него почту.

Аналогично, ваш Postfix должен аутентифицироваться на вашем смартфоне, т.е. на сервере Yahoo. Для этого вам нужно установить (кроме Postfix) механизм аутентификации (Cyrus SASL) и настроить Postfix, как описано в http://www.postfix.org/SOHO_README.html

4
ответ дан 23 April 2021 в 23:22

Пошаговое руководство по отправке электронной почты с постфиксом через почту Yahoo.

Я публикую (надеюсь) полное руководство по отправке электронной почты с почты Yahoo в соответствии с запросом . Это руководство немного отличается от того, что вам нужно, если использует Gmail , как показано здесь , и, возможно, другие серверы, но эта специфика имеет решающее значение для его работы .
Я протестировал его и успешно получил электронную почту на свой адрес назначения . Он также хорошо работает с локальными (исходящими, входящими) адресами .

Два ответа Раффы ( 1 , 2 ) и дальнейшие комментарии очень помогли мне. Но все же нужно было много прочитать и поработать, чтобы сделать это Работа.

  1. Установите постфикс и другие пакеты.

     $ sudo apt-get install postfix mailutils libsasl2-2 ca-сертификаты libsasl2-modules 
     
  2. Отобразится конфигурация после установки. В противном случае используйте $ sudo dpkg-reconfigure postfix . Для последующих экранов используйте: 1. Спутниковую систему (но, возможно, не имеет значения, поскольку вы измените файл конфигурации постфикса позже), 2. myubuntubox , 3. [smtp.mail.yahoo.com] : 465 , 4. root , 5 и следующие: оставьте значения по умолчанию.

  3. Разрешите своей учетной записи Yahoo взаимодействовать с постфиксом с паролем приложения . Это одноразовый пароль, который позволяет не оставлять пароль почты Yahoo на вашем ПК. Перейдите на https://login.yahoo.com/account/security , Account Безопасность -> Пароль приложения и сгенерируйте пароль. Вам придется использовать его позже. Это наверняка сработает, если не использовать двухэтапную аутентификацию, а также, возможно, с двухэтапной аутентификацией.
    Обратите внимание, что в Gmail «Пароли приложений можно использовать только с аккаунтами, в которых включена двухэтапная аутентификация». ( источник ). В этом случае вы будете использовать пароль приложения , поскольку постфикс , как и многие другие приложения, является «менее безопасным приложением» .

  4. Добавьте следующие строки в /etc/postfix/main.cf

     relayhost = [smtp.mail.yahoo.com]: 465 
    smtp_sasl_password_maps = hash:/ etc / postfix / sasl_passwd_yahoo 
    smtp_sasl_security_options = noanonymous 
    smtp_sasl_auth_enable = yes 
    smtp_use_tls = yes 
    smtp_tls_CAfilecer = /etc/ssl/cerates/cafilecer = /etc/ssl.com {1}} smtp_tls_wrappermode = yes 
    smtp_tls_security_level = encrypt 
    smtp_generic_maps = regexp: / etc / postfix / regex_map_yahoo 
     

    Если присутствует в / etc / postfix .cf , строка комментария

     smtp_tls_security_level = может 
     

    с начальной хеш-меткой # , чтобы избежать предупреждающего сообщения. Я не публикую полный файл. Если вы обнаружите проблемы с этими инструкциями, оставьте отзыв.

  5. Создайте / отредактируйте / etc / postfix / sasl_passwd_yahoo , чтобы он содержал

      [smtp.mail.yahoo.com]: 465 (скрыто) { {1}} 

    следует заменить сгенерированным паролем приложения .

  6. Используйте следующие команды

     $ sudo chmod 0600 / etc / postfix / sasl_passwd_yahoo 
     $ sudo postmap / etc / postfix / sasl_passwd_yahoo 
     $ sudo touch / etc / postfix / regex_map_yahoo {{{{ 1}} $ sudo chmod 0600 / etc / postfix / regex_map_yahoo 
     $ sudo nano / etc / postfix / regex_map_yahoo 
     <---- Создание / редактирование файла ----> {{1 }} $ sudo postmap / etc / postfix / regex_map_yahoo 
     $ sudo systemctl restart postfix.service 
     

    При создании / редактировании / etc / postfix / regex_map_yahoo его содержимое должно быть

     /.+@ myubuntubox / (скрыто) 
     
  7. Отправить электронное письмо, например,

     $ echo "Это тело зашифрованного электронного письма" | mail -s "Это тема" (скрыто) 
     
4
ответ дан 23 April 2021 в 23:22

Другие вопросы по тегам:

Похожие вопросы: