Это больше вопрос сетевого администрирования, чем вопроса программирования, поэтому его можно считать нерешенным c. При этом:
Протокол SMTP используется для двух разных, но схожих целей: отправка сообщения и передача сообщения.
Отправка сообщения выполняется MSA
Агент отправки сообщений, как правило, от имени конечного пользователя, но, возможно, по сценарию или процессу. Традиционно это такие клиенты, как Thunderbird, Apple Mail или почтовый клиент на вашем телефоне. В современной практике это обычно делается аутентифицированным (с учетными данными пользователя) и шифруется на портах 465 или 587.
- Порт 465,
SMTPS
(smtp-secure, по аналогии с https) технически устарел , но широко используется. Он используется для SMTP через TLS, где шифрование шифруется от соединения до завершения. - Порт 587,
submission
обычно используется с STARTTLS
, где соединение сначала устанавливается незашифрованным, но вскоре после этого обновляется. используя специальную команду.
Оба этих порта обычно принимают почту от пользователя с учетными данными для любого пункта назначения, а также удерживают и ретранслируют их для пользователя. Например, если вы подключаетесь к smtp.gmail.com через порт 465 или 587 и аутентифицируетесь как user@gmail.com, это позволит вам отправлять электронную почту кому угодно, если оно от user@gmail.com.
Передача сообщений выполняется MTA
Агентом передачи сообщений, как правило, от имени всех пользователей сайта или службы. Ретрансляция выполняется между сайтами через порт 25 с использованием дополнительного шифрования STARTTLS. Аутентификация обычно не выполняется, но существует сложная система отслеживания репутации, брандмауэры и черные списки, обычно используемые за кулисами. Обычно на этот порт принимается только почта для указанного c сайта. Например, если вы подключаетесь к одному из MX-серверов gmail.com (например, gmail-smtp-in.l.google.com на момент написания этой статьи) через порт 25, и он считает, что вы заслуживаете доверия, он примет почта от кого-либо на любой адрес Gmail (при условии дальнейшего сканирования). Он откажется передавать кому-либо за пределы.
Получение сообщений обычно выполняется с помощью IMAP
на портах 143 (с STARTTLS) или 993 (с TLS от соединения). Это служба извлечения, используемая конечным пользователем (как правило) для получения сообщений электронной почты, хранящихся в MTA от их имени. POP3 также используется (на 110 и 995) некоторыми сайтами, но это гораздо менее эффективный протокол.
Традиционно передача и передача выполнялись на порту 25 без аутентификации, но это не go по современному inte rnet. Он был разделен на передачу и передачу, чтобы сетевые ресурсы могли лучше контролироваться. Как вы, возможно, обнаружили, многие интернет-провайдеры и облачные службы ограничивают порт 25, поэтому конечные пользователи не могут выступать в роли передатчиков без их согласия, поэтому ретрансляция происходит либо через их серверы, либо через какую-либо другую службу, которая примет на себя ответственность.
Это Благодаря этой модели пользователи gmail могут отправлять сообщения только через сервер отправки gmail, а другие пользователи должны отправлять сообщения через сервер своих служб, а спаммеры не могут просто настроить сервер для передачи сообщений в gmail. Если они это сделают, а их провайдер не защитит их, их репутация вскоре будет уничтожена и помещена во многие черные списки.
Кроме того, многое из этого даже не происходит по традиционным протоколам. Если вы пользуетесь услугами и клиентами Google, вы, скорее всего, будете использовать собственный протокол, туннелированный через HTTPS, или протокол publi c GMAIL REST. Если вы используете Microsoft, у них есть не менее 3 протоколов электронной почты: Exchange ActiveSyn c, веб-службы Exchange и API Microsoft Graph / Outlook MAIL Rest, все из которых используют HTTPS.