Что за файл smtp

Обновлено: 04.07.2024

А если собираетесь заниматься почтовыми рассылками для клиентов, то пригодятся знания: как правильно настроить и использовать SMPT через почтовые клиенты, например, The Bat или Microsoft Outlook.

Зачем нужен SMTP-сервер

Чтобы рассылать письма без ограничений

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

SMTP позволяет обходить лимиты и без рисков отправлять массовые рассылки по всей базе подписчиков.

Чтобы повысить доставляемость писем

Чтобы избежать утечки личных данных подписчиков

Данные подписчиков хранятся на сервере отправителя рассылки, а не на сервере SMTP. Через SMTP данные не могут быть похищены или выложены в общий доступ, ведь сервер их не сохраняет.

Чтобы анализировать, почему рассылка не доставлена

При отправке письма сервер присылает ответы — специальные команды. Они известны заранее, поэтому можно понять, почему письмо не было отправлено.

Например, есть команда-ответ, которая означает, что отправка письма невозможна, так как почтовый адрес отправителя занесён в чёрный список.

Чтобы сэкономит деньги на транзакционной рассылке

SMPT-сервер стоит дешевле, чем специальные сервисы email-рассылок. Хотя у SMPT нет возможностей создавать шаблоны, автоматические цепочки, лендинги и сайты, он полезен, когда нужно доставить много писем. Например, транзакционных, в которых не используются картинки, GIF и видео.

Недостатки SMTP-серверов

Отсутствие шифрования

Все письма, которые отправлены с сервера, могут быть перехвачены злоумышленниками и прочитаны. Можно частично защитить данные, если использовать команду STARTTLS в расширенной версии сервера.

Много спама на стороне отправителя

Сервер не имеет защиты от спама, поэтому почтовые ящики отправителя будут переполнены спамом. Его придётся удалять вручную, если сервер не использует внешние механизмы блокировки спама.

Доработка для корректной работы

Чтобы отправлять рассылку через SMTP-сервер без проблем, его надо дорабатывать: настраивать заголовки, исправлять ошибки. Если сервер купить или арендовать, доработкой займётся техническая поддержка. Если он создан своими силами, то нужно найти разработчика.

Какие бывают SMTP-серверы

Обычные

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

Главный минус — ограничение на отправку писем. Обычно это дневной лимит. Если лимит превысить, рассылка попадёт в спам, а почтовый ящик может быть занесён в чёрный список.

Выделенные

Как работает SMTP-сервер

SMTP — это комплекс из сервера, жёсткого диска, дополнительного оборудования и программного обеспечения. Сервер выступает в роли посредника между почтой отправителя и почтой получателя письма.

Работает он так:

  1. Проверяет настройки на компьютере, с которого отправляется письмо. Если настройки без ошибок, даёт разрешение на отправку.
  2. Соединяется с почтой получателя, устанавливает связь и отправляет письмо.
  3. Подтверждает успешную доставку письма. Если отправка не произошла, присылает уведомление об ошибке.

Команды и ответы: пример SMTP-сессии

Шаг 1. Подготовка к отправке

Отправитель: команда HELO. Используется, когда сервер почты отправителя связывается с сервером почты получателя.

Получатель: ответ 250. В ответ сервер получателя должен прислать ответную команду, которая разрешит дальнейшие действия.

Шаг 2. Уведомление об отправке

Отправитель: команда MAIL FROM. Команда сообщает, от кого будет отправлено письмо.

Пример: 250 2.1.0 Ok

Шаг 3. Выбор почты получателя

Отправитель: команда RCPT TO. Команда сообщает, на какой почтовый адрес будет отправлено письмо.

Получатель: ответ 250 2.1.0 Ok. Сервер согласен принять письмо для этого получателя.

Пример: 250 2.1.0 Ok

Шаг 4. Передача письма

Отправитель: команда DATA. Сервер отправителя сообщает, что начинает передавать письмо.

Получатель: ответ 250 2.0.0 Ok. Сервер сообщает, что принял письмо. Ещё он назначит ему ID, по которому можно будет узнать, что стало с письмом, если оно не будет доставлено.

Пример: 250 2.0.0 Ok: queued as 1CD5PQ7ERT

Шаг 5. Завершение передачи

Отправитель: команда QUIT. Сервер отправителя сообщает, что передача завершена и сеанс закончен.

Получатель: ответ 221 2.0.0 Bye. Сервер получателя завершает сеанс.

Пример: 221 2.0.0 Bye

Как отправлять рассылку с использованием SMTP-сервера

Если почта заведена на бесплатном почтовом клиенте

Возможности

Вы уже используйте SMTP, если отправляете письма с бесплатных почтовых ящиков, например, Yandex, Google, Yahoo. Чтобы начать работу, необходимо авторизоваться в веб-интерфейсе почты через логин и пароль.

Недостатки

Бесплатные почтовые сервисы не подойдут для массовых рассылок.

Чтобы отправлять письмо, надо соблюдать лимиты. Если превысить лимиты, почтовый сервис заблокирует ящик. Например, Яндекс позволяет отправлять 500 писем в сутки с одного ящика.

Если почта заведена у интернет-провайдера

Возможности

Некоторые провайдеры вместе с услугами связи создают на своих доменах клиентам почтовые ящики. С ящиков также можно отправлять письма через SMTP.

Недостатки

Почта на домене провайдера не подойдёт для массовых рассылок.

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

Пример: как настроить SMTP-сервер на Яндекс.Почте в почтовом клиенте The Bat

Исходные данные

Обычно письма через почту Яндекс отправляют из веб-интерфейса. Но можно делать это и с помощью почтовых клиентов.

Почтовый клиент — это программа. Она работает на компьютере и на смартфоне.

Если у отправителя рассылки несколько почтовых ящиков на разных платформах, то почтовый клиент позволяет всех их объединить. Тогда отправка писем с этих ящиков будет происходить в одном месте — через интерфейс почтового клиента.

Рассмотрим, как отправлять письма через сервер SMTP с Яндекс.Почты, которая подключена в почтовом клиенте The Bat (можно скачать с официального сайта разработчика)

Настройка Яндекс.Почты

Зайдите в Яндекс.Почту и перейдите в настройки:

настраиваем SMTP-сервер

Открываем настройки

Далее кликнете по разделу «Почтовые программы»

SMTP-сервер в Яндексе

Следующий шаг — переход в «Почтовые программы»

Выберите, по какому протоколу будет работать сервер:

  • IMAP — если заходите в почту то с компьютера, то со смартфона, а также если ящик корпоративный, и кроме вас им пользуются коллеги;
  • POP3 — если писем немного и их не нужно сортировать.

Запустите почтовый клиент The Bat и создайте новый почтовый ящик.

создаем новый ящик для SMTP-сервера

Чтобы отправлять письма через сервер SMTP, нужно создать новый ящик

В окне укажите настройки:

Выбираем протокол и имя адреса

Выбор протокола, имени и электронного адреса

В следующем окне выберите протокол, который ранее указали в Яндекс.Почта. Автоматически подтянутся настройки адреса сервера и порт.

блоки заполняются автоматически

Эти блоки заполняются автоматически

Подтвердите настройки на следующем шаге и не забудьте поставить галочку напротив настроек аутентификации:

SMTP-сервер в Bat

Финальный шаг настройки SMTP в The Bat

Готово. Клиент настроен. Можно отправлять письма через сервер SMTP с Яндекс.Почты из интерфейса The Bat.

Стоит ли приобретать дополнительный SMTP-сервер для рассылки

Если нужны массовые рассылки, то использовать онлайн-сервисы и почтовые клиенты невозможно из-за лимитов. Чтобы отправлять письма без ограничений, нужно купить SMPT-сервер, арендовать или настроить самостоятельно. В первых двух случая сервер будет уже настроен или его настройкой займётся техническая поддержка продавца.

Вот цены одного из поставщиков услуг покупки и аренды сервера:

сколько стоит SMTP-сервер

Пример стоимости покупки и аренды SMTP-сервера

Что в итоге

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

Рассылать письма без ограничений можно, если купить готовый SMTP-сервер, арендовать или подключить собственный. Первые два метода проще, так как настройкой будет заниматься техническая поддержка, а последний — сложнее. Доверить работу лучше специалисту, который всё сделает быстро.

SMTP (англ. Simple Mail Transfer Protocol — простой протокол передачи электронной почты) — это сетевой протокол, предназначенный для передачи электронной почты в сетях TCP/IP.
ESMTP (англ. Extended SMTP) — масштабируемое расширение протокола SMTP. В настоящее время под «протоколом SMTP», как правило, подразумевают ESMTP и его расширения.

Для нашего эксперимента буду использовать почтовый сервер яндекса. Подразумевается, что уже есть там аккаунт…
Сразу предупреждаю, что после соединения все команды нужно вводить максимально быстро, т.к. при задержке около 15 секунд соединение автоматически разрывается. Рекомендую сперва все команды заранее набрать в текстовом редакторе а после просто вставлять их в командную строку.

Код 220 говорит об успешном соединении

Этот самый VXNlcm5hbWU6 — закодированное в base64 слово “Username:”, а номер ответа 3ХХ означает, что сервер ждет от нас дополнительной информации. Не будем его огорчать:

Это, как можно догадаться, “Password:” в base64

т.е. авторизация прошла успешно. Теперь можно отправлять e-mail)

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

  • Заголовков SMTP-протокола (то, что мы вводим при MAIL FROM: и RCPT TO: плюс некоторая служебная информация)
  • Заголовков письма. (отправитель, обратный адрес, адресат, отметки о спам-проверках, тема письма, MIME-тип, кодировка и т.п.)
  • Тела письма. (отделяется от заголовков пустой строкой, обычный ASCII текст либо соответствующий mime типу набор данных)

Это все. Как видно, протокол довольно простой, основные сложности — в формировании самого тела письма.

Конечно, здесь не приведена информация по отправке почты в кодировках текста, отличных от ASCII, не написано про вложенные файлы и MIME но если вам нужны подробности, вот несколько ссылок:
Электронная_почта Wiki
SMTP Wiki
MIME Wiki
rfc5321

При разработке приложений непосредственно с SMTP обычно работать не приходится, для этого используют различные фреймворки или стандартные функции. Для PHP можно посмотреть:
SMTP PEAR расширение
PHPMailer библиотека для работы с электронной почной

Удачных экспериментов!

Ошибка SMTP

Как избежать ошибок при составлении и отправке писем

  • выделенный IP-адрес с целью исключить блокировку на стороне сервера-ретранслятора или почтовой программы конечного получателя;
  • криптографические подписи DKIM и SPF, помогающие подтвердить подлинность домена и минимизировать количество писем, воспринимаемых как спам.
Важно! В случае несоблюдения этих элементарных правил вы рискуете не только тем, что конкретное письмо не будет доставлено адресату. При многократных попытках отправки письма в большинстве почтовых программ в блок-лист попадет вся корреспонденция, отправляемая с вашего email, и даже корпоративный домен (@domain.***).

Некорректное использование бота для отправки писем может привести к блокировке отправителя и другим нежелательным последствиям. Даже если информация, которую вы отправляете потенциальным клиентам, реально интересна им, система спам-фильтрации может воспринять данную рассылку как вредоносную. Чтобы избежать этого, лучше всего воспользоваться услугами специализированных компаний.

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

Первая цифра комбинации содержит информацию о качестве доставки:

Существует четыре варианта значений для первой цифры кода:

Вторая цифра в коде сообщает о категории ответа:

  • 0 – синтаксические ошибки;
  • 1 – ответы на запросы информации;
  • 2 – ошибки канала передачи;
  • 3 и 4 – неизвестный тип ошибки;
  • 5 – статус почтовой системы.

Третья цифра дает более расширенную информацию о значении, указанном во второй цифре SMTP-ответа.

Полную информацию о кодах, их компоновке и значениях можно найти в спецификациях RFC 5321 и RFC 1893.

Что такое SMTP-протокол и как он устроен?

SMTP (Simple Mail Transfer Protocol) — протокол передачи почты. Он был представлен еще в 1982 году, но не теряет актуальности до сих пор. В статье разбираемся, какие задачи решает протокол и как он работает.

Для чего используется SMTP

У протокола две главные задачи:

SMTP и его место в стеке TCP/IP

Теоретически SMTP умеет работать с практически любыми протоколами так называемого транспортного уровня, включая TCP, UDP и другие. Еще на заре развития протокола за ним закрепили два номера порта:

  • Первый — это порт 25, посредством которого почта передается между почтовыми серверами.
  • Второй — порт 587, благодаря которому почта передается от почтового клиента на сервер.

В большинстве случаев протокол SMTP используется для передачи исходящей почты с использованием порта TCP 25. То есть можно сказать, что SMTP-порт — это как раз TCP 25, хоть и не всегда. Иногда задействуется еще порт 465. Так происходит, когда порт требует защищенного SSL-соединения.

Но в большинстве случаев используется лишь один транспортный протокол TCP с портом 25 (это SMTP-порт по умолчанию). Другие варианты применяются крайне редко, например, когда провайдеры по какой-то причине закрывают доступ к 25 порту. Они могут делать это, например, для блокировки спам-рассылок.

Электронное письмо и его формат

  • Так называемый конверт.
  • Заголовок.
  • Тело письма.

Что касается заголовка и тела письма, то их параметры прописаны в отдельном документе — RFC2822.


Формат поля заголовка Received:

Received:
From host
by host
via physical-path
with protocol
id message-id
for final e-mail destination

Команды и ответы SMTP

Команды

Все они состоят из четырех символов. Сакрального замысла здесь нет, просто в самом начале разработчики договорились, что длина будет именно такой. Ниже — основные команды SMPT. Есть и другие, но они используются реже.

Ответы SMTP

Здесь все одновременно и проще, и сложнее. Ответы в случае SMTP состоят из двух частей:

Как работает SMTP — простыми словами

Если все хорошо, то далее в работу вступают уже другие протоколы — POP и IMAP, но о них мы поговорим в другой статье.

Пример работы SMTP


Наступает следующий этап — использование команды Mail FROM для того, чтобы указать адрес отправителя. Если сервер возвращает статус 250, то мы уже знаем, что это означает. Все удалось, теперь нужно выполнить команду DATA для ввода самого письма. В этом случае сервер отвечает уже не статусом 250, а другим — 354. После этого можно начинать вводить текст письма. Важный нюанс: заканчиваться все это должно отдельной строкой, которая содержит всего одну точку.

Нужен ли собственный сервер SMTP?

Собственный SMTP дает немного больше преимуществ перед корпоративными (или, например, Google). Это, как правило, невысокая цена, внимательное отношение со стороны разработчиков и хорошая доставляемость массовых рассылок.

Достоинство SMTP в том, что его достаточно просто внедрить, для этого протокола есть обширная документация и развитое комьюнити.

Немного о безопасности и спаме

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

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

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

А еще можно проверить адрес отправителя посредством цифровой подписи, о чем мы уже упоминали выше.

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

В сухом остатке

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

Для того чтобы все реализовать, лучше использовать специализированный сервис, владельцы которого развернули необходимые услуги. В этом случае разработчики требуются лишь для того, чтобы добавить сервис к CRM-системе.

Можно пойти еще дальше и организовать сервисы разных рассылок. Их достоинство состоит в том, что все возможности встроены в пользовательский интерфейс. А возможности не только базовые, ведь в таких сервисах есть функции сбора писем и форм подписки, работы с контактами, настройка цепочек в автоматическом режиме и проведение сплит-тестов.

Добавим, что собственный SMTP-сервер можно реализовать на мощностях Selectel, арендовав для этой задачи выделенные сервер или виртуальную машину в «Облачной платформе Selectel».


Формат поля заголовка Received: (Принято:) следующий:

Формат этого поля заголовка следующий:

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

Поля заголовка Dates

Это поле заголовка используется для идентификации сеансов MIME по определенному идентификационному коду, когда содержимое имеет сложную структуру.

Поле заголовка Content-Type

Данные второго типа начинаются со строки 27 и представляют собой форматированный текст с использованием обогащенного текстового формата.

Расширенный SMTP (Extended SMTP) реализован следующим образом. В начале сеанса SMTP команда HELO заменена на команду приглашения — EHLO. Получение сервером SMTP такой команды означает, что клиент может посылать ему расширенные SMTP команды. В листинге 5.7 показан пример сеанса с использованием EHLO , а также дополнительных команд.

Здесь в роли name может выступать либо имя хоста, либо доменное имя (если поступает запрос на получение почты для всего домена). Команда ETRN весьма хорошее подспорье для администратора электронной почты. Если почту для вашего почтового сервера хранит провайдер Internet, то с помощью этой команды можно уведомить его о готовности к приему собранной для вас почты. Существует несколько способов реализации такого алгоритма. Один из них — использование специальной программы Perl, которая поставляется с программой sendmail. Ее работа как раз и заключается в том, что после установления соединения с провайдером Internet она выдает команду ETRN с именем вашего домена в качестве аргумента. Получив эту команду, сервер SMTP провайдера инициирует еще одно SMTP-соединение с вашим локальным SMTP-сервером (по тому же РРР-соединению) и отдает всю предназначенную для вашего домена почту, которая имеется у него в очереди на отправку.

Читайте также: