Ну, название может быть немного вводящим в заблуждение, но я не мог найти лучший способ описать мой вопрос. Я попытался настроить свой компьютер для отправки электронной почты через функцию php mail() . Оказывается, я не могу. Мой провайдер блокирует порт 25, так что не повезло. Затем из любопытства я настроил Thunderbird с учетной записью Gmail и отправил сообщение на учетную запись Hotmail. Это сработало. Мне было любопытно, как Thunderbird удается отправлять электронные письма.

В конфигурации учетной записи gmail на Thunderbird я увидел, что он использует другой порт, а не 25. Thunderbird, кажется, устанавливает эти значения автоматически, что довольно приятно. Некоторое время назад я хотел настроить учетную запись в Thunderbird, и мне пришлось вручную вводить значения SMTP-сервера и значения IMAP/POP3, так что приятно видеть, что они делают это автоматически сейчас.

Я также проверил почтовые журналы, и ничего не изменилось. Я полагаю, что это не просто, так как электронная почта отправляется не почтой postfix, а почтой Gmail. Это правильно?

Ну, мой вопрос: как Thunderbird удается отправлять электронную почту? и что более важно, могу ли я сделать что-то подобное, чтобы иметь возможность отправлять электронную почту из моих сценариев php?

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

И так как я уже спрашиваю, где я могу узнать об этом? Они учат этому в школе? Может быть, компьютерным ученым? Какая хорошая книга для начала работы в этом прекрасном мире электронной почты, SMTP, POP3 и прочего.

2 ответа2

1

Чтобы отправить электронное письмо, ваш почтовый клиент (либо Thunderbird, либо ваш PHP-скрипт) должен подключиться к SMTP-серверу, который может ретранслировать электронную почту через Интернет, чтобы, наконец, достичь почтового сервера получателя. Стандартный порт для SMTP - 25, но иногда можно использовать другие порты, такие как 587 или 465, часто с некоторым типом шифрования, таким как SSL.

Какой порт и какое шифрование использовать, зависит от используемого SMTP-сервера. Thunderbird, как вы упомянули, может обнаружить это, опробовав общие порты и протоколы. Для отправки электронной почты через SSL из скрипта PHP вы можете, например, использовать расширение PEAR Mail .

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

0

Я знаю, что вы решили это, но это ответ на первоначальный вопрос: как Thunderbird отправляет почту?

Клиент Thunderbird поставляется с информацией о соединении для нескольких известных почтовых провайдеров, включая (как вы видели) gmail, hotmail, yahoo и, возможно, несколько других. Конфиг будет знать:

  • Протокол для входящих - POP3 или IMAP (к сожалению, Thunderbird не может сделать Exchange: Microsoft только лицензировал протокол Exchange для мобильных устройств)
  • Протокол для исходящих - в значительной степени универсальный SMTP
  • Порты, где находятся услуги.
  • Нужно ли проходить аутентификацию на SMTP-сервере? (SMTP-серверам обычно требуется аутентификация сейчас, иначе вы будете предоставлять больше спама)
  • Шифрование? TLS/SSL? или он поддерживает STARTTLS?

Итак, когда вы создали свою учетную запись, вы сказали Thunderbird «me@gmail.com». Он увидел, что это был gmail.com, и использовал то, что конфиг знал об учетной записи (IMAP/SSL на imap.gmail.com, SMTP/SSL на smtp.gmail.com и т.д.)

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

Что касается обучения, проверьте RFCS, это последнее слово в том, что путешествует по проводам. Кроме того, проверьте документы на postfix, sendmail и другие MTA (Mail Transfer Agent).

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