92

Зачем мне нужен промежуточный SMTP-сервер для отправки почты? Почему мой клиент (Outlook, Thunderbird) не может отправлять сообщения непосредственно в домен SMTP получателя?

Например, если мне нужно отправить электронное письмо по address@example.com с моей учетной записью Gmail, я отправлю его на сервер smtp.gmail.com ; и затем этот сервер отправит мое сообщение на сервер MX сайта example.com .

6 ответов6

114

Технически возможно отправить электронное письмо непосредственно на SMTP-сервер получателя с вашего компьютера.

Глядя на это с исторической точки зрения, если удаленный SMTP-сервер не работает, вы хотите, чтобы система автоматически обрабатывала его и продолжала повторять попытки - следовательно, у вас есть SMTP-сервер. Точно так же в старые времена не все почтовые серверы были подключены все время - междугородние ссылки были дорогими, поэтому почта была поставлена в очередь и отправлялась, когда связь была установлена.

Переходя к дешевому Интернету, все еще полезно иметь механизмы для повторной отправки электронной почты, если сервер недоступен, и не идеально, чтобы эта функция была записана в MUA (почтовый агент пользователя / программа почты конечного пользователя). Эти функции вписываются в MTA (почтовый сервер / SMTP-сервер).

Но становится еще хуже - спаммеры. Большинство электронных писем (более 80%) являются спамом. Таким образом, почтовые провайдеры делают все возможное, чтобы решить эту проблему - и большое количество методов делают предположения о способе доставки электронной почты - вот важные соображения:

  1. Greylisting: некоторые провайдеры автоматически разрывают почтовое соединение, если отправитель и получатель не общались ранее, и ожидают, что они попробуют во второй раз - потому что спаммеры часто этого не делают, в то время как SMTP-сервер всегда должен это делать. Это уменьшает объемы спама примерно на 80%. Это отстой, когда приходится это делать.

  2. Репутация: гораздо более вероятно, что кто-то, отправляющий электронную почту через известный SMTP-сервер с хорошей репутацией, является более законным, чем сервер, работающий на лету. Чтобы почувствовать репутацию, провайдеры делают несколько вещей:

    1. Блокировать динамические / клиентские адреса (не 100%, но выделены большие фрагменты Интернета).

    2. Посмотрите, что обратный DNS соответствует прямому DNS: это не так сложно сделать, но показывает некоторый уровень подотчетности и знание передового опыта - и то, чего нет у многих блоков клиентских адресов.

    3. Репутация. При взаимодействии с другими SMTP-серверами многие провайдеры отслеживают объем спама и объемы отправленных сообщений и могут уменьшить количество спама, ограничивая количество соединений и следя за этими параметрами. (Есть много способов сделать это, не все из которых очевидны, но которые требуют известного отправителя).

    4. SPF и DKIM: эти механизмы связывают ресурсы DNS с доменным именем, что затрудняет подделку почты, и ее будет сложно (но не обязательно невозможно развернуть, если почтовая программа (MUA) отвечает за исходящую почту). (Добавлено, чтобы сделать этот ответ более полным, поскольку он уже принят. Кредит на это должен идти к постерам ниже, поскольку это ускользнуло от меня, но, тем не менее, очень актуально)

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

32

Зачем мне нужен промежуточный SMTP-сервер для отправки почты? Почему мой клиент (Outlook, Thunderbird) не может отправлять сообщения непосредственно в домен SMTP получателя?

В 1991 году - и в большинстве начале 1990-х и даже раньше - вы могли бы делать то, что описали. Но в 2015 году реальность такова, что, хотя технически можно отправить электронное письмо кому угодно с любого компьютера, на котором установлена почтовая служба, мир СПАМа сделал этот метод практически бесполезным.

Когда вы используете «настоящую» службу SMTP, такие вещи, как записи PTR, записи SPF и даже DomainKeys, устанавливаются для одной цели и только для одной цели: подтвердить, что SMTP, отправляющий сообщение, является законным. А если нет? Отфильтруйте сообщение в папку СПАМ или «большую пропасть» удаления. Вот разбивка каждого из этих пунктов:

  • PTR (запись указателя / обратная запись DNS): проверка на уровне сервера. Как объясняется здесь, запись PTR используется для сопоставления сетевого интерфейса (IP) с именем хоста. Это означает, что если у вас есть адрес 123.456.789.0 на вашем SMTP-сервере, отправляющем электронные письма для smtp.example.com то соответствующей PTR-записью для этого будет smtp.example.com . Кажется слишком простым, но это работает, поскольку единственный, кто действительно может установить запись PTR, является владельцем IP-адреса, и он может быть установлен только на их оборудовании. Таким образом, он действует как точка проверки того, кто владеет / управляет / управляет этим IP-адресом.

  • SPF (платформа политики отправителя): проверка уровня входа DNS имени хоста. Запись SPF, как объясняется здесь, в основном представляет собой запись DNS, установленную владельцем имени домена, которая предоставляет список IP-адресов и имен хостов серверов, которым разрешено отправлять электронные письма для этого имени домена. Это снова еще один шаг проверки, который гарантирует, что только истинный владелец имени домена для SMTP-сервера может отправлять почту. Допустим, сервер с IP-адресом 123.456.789.9 отправляет электронные письма для example.com . Мы уже знаем, что smtp.example.com использует 123.456.789.0 , но запись в записи SPF для example.com может заявить:«Эй! 123.456.789.9 - хороший сервер! Он законный! Уважайте его письма! »

  • DKIM (DomainKeys Identified Mail): проверка уровня сообщения электронной почты. Как объясняется здесь и в Википедии, «DKIM - это система проверки электронной почты, предназначенная для обнаружения подделки электронной почты, предоставляя механизм, позволяющий получающим почтовым обменникам проверять, разрешена ли входящая почта из домена администраторами этого домена и что электронная почта (включая вложения) не был изменен во время транспортировки. » Используя криптографические хеши, DKIM проверяет, что сама почта не была отфильтрована или подделана во время передачи. Это также служит еще одним пунктом проверки в «Вы законный или вы СПАМ?» цепь.

Таким образом, в конце концов, общедоступный SMTP-сервер, который стоит чего-либо, будет иметь по крайней мере два из этих элементов (PTR и SPF), чтобы убедиться, что SMTP-сервер и связанная с ним электронная почта являются законными. Не все используют DKIM, но это еще один уровень проверки, который становится все более популярным в настоящее время, так как спаммеры становятся более настойчивыми в своих попытках отправить спам.

15

Большинство жилых интернет-провайдеров блокируют TCP-порт 25 (SMTP), чтобы предотвратить ваше участие в спам-сети. Если ваш компьютер заражается, ваш компьютер может начать извергать спам по приказу кого-либо еще.

6

Все остальные ответы превосходны, и спам имеет к этому непосредственное отношение.

Но на самом деле есть более простой, более общий ответ: особенности. Отправка электронной почты через SMTP на самом деле очень сложная задача. Даже без спама вы не захотите реализовывать весь набор функций протокола SMTP в каждом почтовом клиенте; вам лучше с выделенным программным обеспечением (sendmail, postfix и т. д. самые большие в мире * nix, Exchange в мире Windows).

Например, даже на самом базовом уровне "настоящий" SMTP-сервер должен как минимум иметь возможность разрешать записи MX. Затем он должен согласовать функции (в основном TLS, но есть и другие функции). Он должен управлять очередями для повторных попыток, генерировать отчеты о недоставке и т.д.

И это только базовая, обязательная функциональность, без которой сервер даже не работал бы. Он даже не включает такие вещи, как перезапись адресов, почтовые программы. Не говоря уже о дюжине других протоколов, которые поддерживают sendmail и др., Таких как UUCP.

Реализация SMTP в Outlook, Thunderbird и т.д. Очень минимальна - в лучшем случае примерно эквивалентна использованию умного хоста на sendmail, если таковой.

Связанная, но отдельная проблема: электронная почта - это тема, очень чувствительная к безопасности, и вы бы хотели, чтобы ее обрабатывал один или несколько серверов с централизованным управлением, а не сотни или тысячи отдельных серверов на каждом рабочем столе.

4

Зачем мне нужен промежуточный SMTP-сервер для отправки почты? Почему мой клиент (Outlook, Thunderbird) не может отправлять сообщения непосредственно в домен SMTP получателя?

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

По сути, вы бы написали инструмент, который является одновременно MUA (агентом почтового пользователя) и MTA (агентом почтовой передачи).

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

MTA должен:

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

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

  • Работайте с различными возможностями сервера, регулируя поведение в соответствии с возможностями принимающего сервера.

  • Сообщите пользователю об ошибках или о невозможности доставки почты, чтобы почта не просто потерялась.

  • Иметь отличные методы безопасности и быть очень внимательным к безопасности.

  • В идеале, находиться на надежном, всегда подключенном сервере со стабильным IP-адресом и обратной записью DNS, то есть интернет-соединением, подходящим для общедоступных серверов. Это помогает другим системам не обнаруживать почту, отправленную как спам.

Принимая во внимание эти требования, имеет смысл разместить SMTP-сервер на общедоступном и всегда доступном сервере и попробовать использовать инструмент, подходящий для выполнения этой конкретной работы.

1

Еще одна вещь, которую следует учитывать, это получение возвращенного электронного письма. Как минимум, все исходящие сообщения имеют адрес FROM, на который можно отправить ответ (неизвестный пользователь, ответ из отпуска и т.д.). Чтобы разрешить обратный адрес, должна существовать запись MX, указывающая на местоположение входящего почтового ящика. Если вы не отправляете электронную почту с компьютера со статическим IP-адресом, который всегда включен, вам понадобится сервер для обработки этих входящих сообщений. Это обычно (но не всегда) обрабатывается одной и той же службой.

GMail, Outlook 365 и Yahoo Mail являются примерами служб электронной почты, которые используются лицами, отправляющими электронную почту. Для коммерческой отправки электронной почты существуют такие службы, как MailChimp, Marketo и Eloqua, которые очень хороши в отправке массовой электронной почты для компании и обработке таких вещей, как отскок, регулирование и доставка.

Смотрите: https://en.m.wikipedia.org/wiki/Bounce_address

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .