«Интернет» не использует POP3 для отправки и получения электронной почты, он использует SMTP. Вот как «течет» электронная почта от отправляющего компьютера к принимающему:
Сервер должен отправить электронное письмо на адрес: myhome@localhost
. Первое, что он делает, это изолирует имя сервера, то есть часть после «@». Затем он использует DNS для поиска IP-адреса СЕРВЕРА для компьютера, который должен получать электронную почту для данного домена. DNS содержит специальную запись для этой цели, она называется «MX» запись. Вы можете использовать инструменты командной строки, такие как dig
в Linux или nslookup
в Windows, чтобы найти этот адрес, или вы можете использовать онлайн-инструмент, подобный тому, который найден в http://www.mxtoolbox.com/ (Google нашел этот сайт, я полагаю, там много других!).
Если вы попытаетесь найти запись MX для своего домена "localhost", вы, очевидно, обнаружите, что это невозможно, поскольку это не полностью определенное имя. Сначала вам нужно получить доменное имя, чтобы вы могли зарегистрировать запись MX!
Вещи, необходимые для получения электронной почты
- Нужен "настоящий" IP-адрес. Серверы вне вашей локальной сети должны связаться с вашим сервером, и им, очевидно, нужен способ сделать это. Убедитесь, что маршрутизаторы не блокируют SMTP-порты.
- Вам необходимо зарегистрировать доменное имя, добавить запись MX и указать ее на свой «реальный» IP-адрес.
- Необходимо запустить программное обеспечение SMTP-сервера на вашем компьютере. Вы можете использовать компоненты Indy, чтобы написать один.
Вещи, необходимые для отправки электронной почты
Теоретически отправка электронной почты с помощью SMTP - самая простая часть. Вы просто связываетесь с ответственным сервером с помощью SMTP и отправляете электронную почту, вот так работает протокол: любой компьютер в мире может отправлять электронную почту на любой SMTP-сервер.
Практически отправка электронной почты - самая трудная вещь, которую вам нужно сделать, в основном потому, что иностранные SMTP-серверы вам не доверяют (когда-либо слышали о СПАМЕ?). Вот некоторые вещи, которые вам могут понадобиться, чтобы иностранные SMTP-серверы принимали электронную почту от вас. Нет определенного списка, потому что сам протокол не включает в себя четкий механизм аутентификации, поэтому каждый большой SMTP-сервер использует свою собственную эвристику для принятия решения, принимать ли от вас электронную почту или нет. Ты найдешь Yahoo особенно веселым!
- Вам нужен REVERSE DNS для IP-адреса, который вы используете для отправки электронной почты.
- Вам необходимо отправить с одного из серверов SMTP, указанных в DNS, в качестве серверов MX.
- Ваши записи DNS должны иметь длинные TTL (это исключает службы динамического DNS)
- Многое другое ...
Что обычно делают люди?
Электронная почта трудна, для вашего собственного сервера доступно удивительно небольшое количество полных SMTP-серверов: Exchange, Notes, Postfix, QMail, Sendmail. Они все общеизвестно сложны в настройке. Большинство людей будут использовать размещенные почтовые службы, некоторые будут использовать службы SMTP, предоставляемые интернет-провайдером, и очень немногие установят одну из упомянутых служб.
Если вы действительно хотите написать свой собственный SMTP-сервер, продолжайте, но вы, возможно, захотите установить один из готовых ранее, чтобы получить немного опыта работы с электронной почтой и DNS. Linux дешевы в установке и могут также помочь в разработке (вы не хотите отправлять слишком много плохих писем на ваш бесплатный адрес Yahoo, вы можете попасть в черный список!)