Intereting Posts
Учетная запись пользователя Proftpd Какое влияние имеет rc_sys = "docker"? Хранить локальную копию монтирования nfs на компьютере Как я могу проверить конфигурацию моего ядра? Поиск файлов с шаблоном и получение последнего Проблема с установкой Fedora 26: «Ошибка проверки конфигурации хранилища» (с использованием Live USB) Прокси-сервер SSH Как найти устройство, к которому подключен USB-узел в операционной системе Linux? Как предотвратить включение ELinks в буфер прокрутки? Вызовы синхронизации / fsync замедляются после 30 минут безотказной работы Различить файлы с отступом Tab и Space Можно ли добавить в привилегированные порты Linux? Может ли процесс реального времени существовать в очереди «expired» ядра linux? Невозможно включить службу Canonical Livepatch в Ubuntu 16.04.4 Ошибка LTS: не найдена привязка «canonical-livepatch» «Не удалось подключиться к отображению» в одной учетной записи пользователя

Каков самый простой способ отправки электронной почты между двумя компьютерами?

Чтобы уточнить намерение моего вопроса, позвольте мне сделать аналогию с вопросом «Какой самый простой способ поместить данные в файл?»

Обычный способ, которым пользователи GUI помещают данные в (новый) файл, – это дважды щелкнуть значок программы, щелкнуть по строке меню, щелкнуть «новый», щелкнуть «сохранить», щелкнуть, чтобы выбрать местоположение для файла, введите имя файла и нажмите кнопку «Сохранить».

Самый простой способ поместить данные в файл (из командной строки): echo whatever > file


Насколько я понимаю, адреса электронной почты первоначально ссылались на фактические имена пользователей на машинах и имена реальных машин. Поэтому, если IP-адрес компьютера, в который вы вошли (например, в университете), был 7.7.7.7, и если вы вошли в систему с именем пользователя pete , вы можете pete@7.7.7.7 по электронной почте, отправленной на pete@7.7.7.7 . (Это правильно?)

Дело в том, что письмо было напрямую связано с вашим именем пользователя и компьютером. Следовательно, почему электронное письмо, которое я получил из командной строки работающего сервера, отображается как отправленное из «root@themachinename.domainname.net».

Итак, какова минимальная настройка, необходимая для отправки и получения электронной почты между двумя компьютерами (непосредственно с учетными записями командной строки), без третьего компьютера или сервера Google или MS Exchange или что-то еще?

(Для систем UNIX и Linux, очевидно. В основном заинтересованы в Linux, хотя, если Mac включен, это было бы неплохо.)


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


Изменить: ответы пока полезны, но оставьте какие-либо сведения о том, как получить электронное письмо. Похоже, что поисковая фраза Google, которую я отсутствовала, – это «минимальный MTA Linux», но если кто-то хотел бы ответить более подробно, мне бы это понравилось. (Если нет, мне придется разобраться и, в конце концов, ответить самостоятельно). 🙂

Я предполагаю, что оба пользователя и их два компьютера независимы, например, что пользователь A не может просто получить доступ к компьютеру пользователя B и записать файлы в файловую систему.

Это означает, что минимальная конфигурация – это та, где A может подключаться к MTA на машине B, и MTA считает себя ответственным за электронную почту в машине / домене B.

Это означает, что когда A говорит, что у него есть сообщение для B, MTA берет на себя ответственность за обеспечение сообщения почтовым ящиком B.

Спустившись вниз, это означает:

  • A подключается к порту слушателя MTA B (традиционно порт TCP / 25)
  • A идентифицирует отправителя и получателя, а MTA B говорит «ОК»
  • A передает сообщение, а MTA B отправляет ответ, который указывает, что он берет на себя ответственность
  • Затем MTA B записывает сообщение на диск (почтовый ящик B)

С этим случаются хакерские пути, о которых я упоминаю попутно. Если A является корневым на машине B, A может добавить сообщение непосредственно в почтовый ящик B, просто создав / отредактировав подходящий файл. Например, отредактировав файл mbox. Но это своего рода патологический случай.

Если вы просто хотите добавить программное обеспечение как отправителю, так и получателю, вам также нужен DNS-сервер. MTA нуждается в отправке почты.

Настройка – это два сервера в закрытой сети без доступа в Интернет. Здесь перечислены имена хостов (они необходимы) и номер IP. Вы можете использовать любой IP-номер.

 7.7.7.7 foo.org 7.7.7.8 bar.org 

На foo.org вам нужно установить DNS-сервер (т.е. bind), и bar.org должен его использовать. Оба сервера должны иметь MTA (postfix / exim4).

При настройке вы можете запустить это с bar.org :

 john@bar:~$ date | mail -s Test pete@foo.org 

Самый простой способ отправить почту между двумя компьютерами – это «агент передачи почты» (MTA, программа, которая принимает сообщения электронной почты в формате SMTP), выполняемые на отправляющем и принимающем компьютере. Затем вы можете запустить любую программу командной строки на отправляющем компьютере, который форматирует вашу почту, чтобы связаться с отправляющим MTA, и он отправит его в принимающий MTA. Например

 echo "This is a text" | mail -s "This is the subject" 

достаточно. Существуют различные другие программы для отправки / форматирования / чтения писем.

В крайнем случае вы можете связаться с получающим MTA напрямую с telnet и т. Д., Как описано в другом ответе. Это более минимально, но я бы не назвал его «более простым».