Использование smtp команд для отправки почты по telnet

SMTP с авторизацией по протоколу SSL. Введение

Эта статья является продолжением ранее написанной, на тему Отправка писем через SMTP с авторизацией на php. В предыдущей статье я выкладывал исходники класса, который писал для своих нужд, работа которого заключалась в отправке писем через smtp Яндекса. Но статья стала популярной и многие читатели блога, стали присылать вопросы по работе класса. Главной проблемой стала работа через протокол SSL. А в последнее время эта проблема стала возникать еще чаще, поскольку все популярные почтовые сервера перешли на работу по защищенному протоколу SSL. В связи с этим я немного дописал класс, он теперь способен работать и по SSL, обновленную версию можете скачать тут.Обновление 13.03.2018: Класс обновился, подробнее тут: Новая версия класса SendMailSmtpClass

Настройка аутентификации на Postfix

Аутентификация на postfix будет выполняться методом dovecot. Для этого устанавливаем его. Заодно, устанавливаем и postfix (на случай, если его нет еще в системе). В зависимости от используемой операционной системы используем разные команды.

а) если используем Ubuntu / Debian:

apt-get update

apt-get install postfix dovecot-imapd dovecot-pop3d

б) если используем CentOS / Red Hat:

yum install postfix dovecot

После установки пакетов, разрешаем автозапуск dovecot и postfix:

systemctl enable postfix dovecot

Открываем на редактирование конфигурационный файл нашего MTA Postfix:

vi /etc/postfix/main.cf

Добавляем строки (или меняем значения):

smtpd_sasl_type = dovecot
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
smtpd_relay_restrictions =
        permit_mynetworks
        permit_sasl_authenticated
        reject_unauth_destination

* где:

  • smtpd_sasl_type — тип плагина, который используется для SASL-аутентификации. Командой postconf -a мы можем получить список механизмов аутентификации, которые поддерживаются почтовой системой.
  • smtpd_sasl_auth_enable — разрешает или запрещает аутентификацию по механизму SASL.
  • smtpd_sasl_path — путь до файла для обмена аутентификационной информацией. Используется для взаимодействия нескольких систем — в нашем примере Postfix + Dovecot.
  • smtpd_relay_restrictions — правила разрешения и запрета использования MTA при пересылке. В нашем случае:
    • permit_mynetworks — разрешить отправку с компьютеров, чьи IP-адреса соответствуют настройке mynetworks.
    • permit_sasl_authenticated — разрешить отправку писем тем, кто прошел авторизацию.
    • reject_unauth_destination — запретить всем, кто не прошел проверку подлинности.

Проверяем корректность настройки:

postconf > /dev/null

Если команда не вернула ошибок, перезапускаем Postfix:

systemctl restart postfix

Переходим к настройке dovecot — открываем файл:

vi /etc/dovecot/conf.d/10-master.conf

… и приводим опцию service auth к следующему виду:

service auth {
  …
  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
  }
  …
}

* если соответствующей секции unix_listener нет, то ее нужно создать

Обратите внимание, что для обмена аутентификационными данными мы применяем файл /var/spool/postfix/private/auth, который в конфигурационном файле postfix был указан, как private/auth

Отключаем требование ssl для аутентификации (на текущем этапе нам это не нужно):

vi /etc/dovecot/conf.d/10-ssl.conf

Проверяем, чтобы значение ssl не было required:

ssl = yes

* нас устроит оба варианта — yes или no.

Настройки аутентификации приводим к следующему виду:

vi /etc/dovecot/conf.d/10-auth.conf

auth_mechanisms = plain login

* данные механизмы позволяют передачу данных в открытом виде.

В этом же файле проверяем, что снят комментарий со следующей строки:

!include auth-system.conf.ext

Проверяем корректность настройки dovecot:

doveconf > /dev/null

Если команда ничего не вернула, перезапускаем сервис:

systemctl restart dovecot

В качестве логина и пароля можно использовать любую системную учетную запись. Создадим ее для теста:

useradd smtptest

passwd smtptest

Мы настроили простую аутентификацию на сервере SMTP. Для проверки можно воспользоваться любым почтовым клиентом. Пример настройки thunderbird:

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

Мы завершили настройку аутнтификации на postfix при отправке письма. Добавим проверку данных через LDAP.

Telnet на сетевых устройствах

Мы уже говорили о том, что с помощью протокола Telnet можно управлять не только компьютерами, но и самыми различными сетевыми устройствами. Наиболее часто встречающийся класс таких устройств — это маршрутизаторы. Так что такое Telnet в роутере, для чего он нужен, как его включить?

В зависимости от производителя и конкретной модели включить доступ по Telnet можно по-разному. Вы можете зайти на роутер по веб-интерфейсу либо через консоль. В первом случае вам нужно будет найти пункт удаленного администрирования, где разрешается тот или иной вид подключения (Telnet, ssh). Во втором случае доступ может быть предоставлен посредством командной строки. Каждый администратор выбирает удобный для себя сценарий. Однако встречаются маршрутизаторы, в которых реализован только один из двух возможных вариантов первоначального подключения, например, доступен лишь веб-интерфейс. Администратору, привыкшему к работе с консолью, будет достаточно некомфортно искать пункт, где нужно поставить заветную галочку, но в действительности ничего сложного в этом нет. Интерфейс большинства современных роутеров достаточно понятен. Названия пунктов меню говорят сами за себя, минималистический дизайн не позволит запутаться.

Instant CMS

В админ-панели сайта перейдите в раздел «Настройки» и далее на вкладку «Почта». В пункте «Почтовый транспорт» выберите «SMTP» и укажите следующие параметры:

  • Адрес отправителя — почтовый ящик, с которого будет происходить отправка.
  • Название отправителя — имя отправителя, например, имя сайта (будет видно адресату в поле «От»).
  • SMTP Сервер — smtp.timeweb.ru
  • Порт — 25 или 2525 (либо 465, и в этом случае также нужно указать «SSL» в пункте «SMTP Шифрование»).
  • SMTP Авторизация — отметить галочкой.
  • SMTP Пользователь — почтовый ящик (совпадает с полем «Адрес отправителя»).
  • Пароль — пароль от почтового ящика.

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

Часто встречающиеся ошибки 1С и общие способы их решения Промо

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

Команда MAIL

Команда MAIL используется для организации сеанса обмена электронной почтой с сервером после того, как была послана команда HELO. Она указывает, от кого исходит данное сообщение. Формат команды MAIL следующий:

MAIL reverse-path

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

MAIL FROM: [email protected]

Заметьте, что в поле FROM указывается адрес электронной почты отправителя сообщения, включая полное имя клиентского хост-компьютера. Эта информация должна присутствовать в поле FROM почтового сообщения (но об этом позже). Если почтовое сообщение проходило на пути от отправителя к получателю через несколько узлов, то каждый из них будет добавлять сведения о себе в поле <reverse-path>. Таким образом документируется путь прохождения сообщения через почтовые серверы. Довольно часто электронная почта от клиентов частных сетей должна проходить через несколько серверов электронной почты, прежде чем попасть в сеть Internet. Информация, которая содержится в поле reverse-path часто полезна при разрешении проблем в системах электронной почты или для обнаружения почтовых серверов, которые пытаются скрыть свою принадлежность, посылая сообщения через неизвестные серверы SMTP.

Настройка Интернета

Здесь главная вкладка Подключение. Но она настраивается работниками Интернет-провайдера, либо даются чёткие указания на этот счёт, поэтому не нужно ничего менять.

Переключение портов

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

Переадресация портов

У всех устройств локальной сети, понятное дело, локальные IP адреса – с такими адресами они не могут выходить в Интернет. Поэтому используется NAT, то есть Network Address Translation — «преобразование сетевых адресов».

Не будем прямо сейчас рассматривать технические подробности, но суть в том, что локальный компьютер может выйти в Интернет и получить данные, но из вне никто не может связаться с локальным компьютером – потому что у него локальный IP, а запрос приходит на внешний IP роутера (невозможно сделать запрос из вне на локальный адрес сети) и роутер просто не знает, кому его нужно переадресовать.

Именно эту проблему позволяет решить переадресация портов. Мы чётко указываем, что если пришёл запрос на 80 порт, то это соединение нужно перенаправить, например, на локальный IP 192.168.0.49.

Благодаря такой настройке, если кто-то обращается по IP к роутеру на установленный для переадресации порт (80 к примеру), то роутер чётко знает, какому локальному IP его нужно передать.

Настройка VPN/Tor

Эти функции есть не во всех роутерах. Здесь вы можете включить перенаправление трафика всех пользователей локальной сети через Tor.

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

Если вы хотите, чтобы роутер работал как клиент OpenVPN, то проще всего загрузить файл конфигурации с настройками VPN. При этом самым удобным вариантом является файл конфигурации с встроенными в него сертификатами. Как это сделать написано здесь.

Либо можно включить на роутере OpenVPN сервер, тогда он сгенерирует файл конфигурации, с помощью которого можно будет подключаться к роутеру как к виртуальной частной сети (VPN).

Настройка брандмауэра (файервола)

Файерволы роутеров позволяют фильтровать данные как на прикладном (седьмом) уровне, так и на транспортном уровне (четвёртом).

На прикладном уровне возможна фильтрация протокола HTTP на основе адресов сайтов, а также содержимого, то есть слов на сайте. Помните, что фильтруются только данные, передаваемые по HTTP протоколу, протокол HTTPS передаётся как есть, без фильтрации.

Фильтр сетевых служб – это фильтрация на уровне TCP и UDP протоколов (транспортный уровень). Фильтр сетевых служб блокирует обмен пакетами между локальной и глобальной сетями и ограничивает устройства в использовании определенных сетевых служб. Например, если вы хотите заблокировать интернет-серфинг, введите 80 в порт назначения. Трафик, использующий порт 80 будет заблокирован.

Оставьте поле исходного IP/MAC пустым для применения этого правила ко всем устройствам локальной сети.

В настройках файервола можно «Включить защиту DoS», если ваш роутер это поддерживает.

Как убедиться, что это сработало?

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

  • Используйте командлеты Test-PopConnectivity и Test-ImapConnectivity, которые отправляют тестовые сообщения по протоколу SMTP с проверкой подлинности. Дополнительные сведения см. в статьях Test-PopConnectivity и Test-ImapConnectivity.

  • Включить вход протокола в соединители «Клиентский фронтенд», настроить клиент POP3 или IMAP4 для подключения к почтовому ящику, отправить тестовое сообщение из внутреннего сетевого подключения и/или внешнего подключения к Интернету и просмотреть результаты в журнале <Server name> протоколов. Дополнительные сведения см. в журнале Protocol.

    Примечание. Для подключения к почтовому ящику Администратора нельзя использовать POP3 или IMAP4. Это ограничение было намеренно включено в Exchange 2016 и Exchange 2019 для повышения безопасности почтового ящика администратора.

Рекомендации по сертификатам Exchange

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

  • Используйте как можно меньше сертификатов. Очень вероятно, что это означает использование сертификатов SAN или сертификатов подпольных карт. С точки зрения связи с Exchange оба функционально эквивалентны. Решение о том, следует ли использовать сертификат SAN против сертификата под диктовки, больше о ключевых возможностях или ограничениях (реальные или воспринимаемые) для каждого типа сертификата, как описано в обзоре цифровых сертификатов

    Например, если все общие имена будут находиться на одном уровне contoso.com, не имеет значения, какой сертификат использовать (SAN или групповой). Но для autodiscover.contoso.com, autodiscover.fabrikam.com и autodiscover.northamerica.contoso.com необходимо использовать сертификат SAN.

  • Используйте сертификаты из коммерческого ЦС для клиентских и внешних подключений к серверу. Хотя большинство клиентов могут доверять любому эмитенту сертификата или сертификата, гораздо проще использовать сертификат из коммерческого ЦС для клиентских подключений к Exchange серверам. Клиенту не требуется конфигурация, чтобы доверять сертификату, выданным коммерческим ЦС. Многие коммерческие CAs предлагают сертификаты, настроенные специально для Exchange. Вы можете использовать EAC или Exchange для создания запросов сертификатов, которые работают с большинством коммерческих ЦС.

  • Выберите правильный коммерческий центр сертификации: сравните цены и функции сертификатов между ЦС. Например:

    • Убедитесь, что центру сертификации доверяют клиенты (операционные системы, браузеры и мобильные устройства), которые подключаются к серверам Exchange.

    • Убедитесь, что ЦС поддерживает необходимый вам сертификат. Например, не все ЦС поддерживают сертификаты SAN, ЦС может ограничивать количество допустимых общих имен в сертификате SAN или взимать дополнительную плату исходя из количества общих имен в сертификате SAN.

    • Узнайте, предоставляет ли ЦС льготный период, в течение которого в сертификаты SAN можно бесплатно добавлять дополнительные общие имена.

    • Убедитесь, что лицензия позволяет использовать сертификат на нужном количестве серверов. Некоторые ЦС позволяют использовать сертификат только на одном сервере.

  • Используйте мастер Exchange сертификата. Распространенная ошибка при создании сертификатов — забыть одно или несколько распространенных имен, необходимых для служб, которые вы хотите использовать. Мастер сертификатов в центре администрирования Exchange поможет включить правильный список общих имен в запрос сертификата. Мастер позволяет указать службы, которые будут использовать сертификат, и включает общие имена, необходимые для этих служб. Запустите мастер сертификатов при развертывании исходного набора серверов Exchange 2016 или Exchange 2019 г. и определите, какие имена хостов будут использовать для различных служб для развертывания.

  • Используйте как можно меньше имен хостов. Минимизация числа имен хостов в сертификатах SAN снижает сложность управления сертификатами. Не чувствуйте себя обязанными включать имена отдельных серверов Exchange в сертификаты SAN, если это не требуется для использования для сертификата. Как правило, необходимо включать имена DNS, которые представлены внутренним клиентам, внешним клиентам или внешним серверам, которые используют сертификат для подключения к Exchange.

    Для простой Exchange Server организации с именем Contoso это гипотетический пример минимальных имен хостов, которые потребуются:

    • mail.contoso.com. Это имя хост охватывает большинство подключений к Exchange, включая Outlook, Outlook в Интернете, рассылку OAB, Exchange веб-службы, Exchange центр администрирования и Exchange ActiveSync.

    • autodiscover.contoso.com. Это конкретное имя хост-сайта требуется клиентам, которые поддерживают автонаруже, включая Outlook, Exchange ActiveSync и Exchange веб-службы. Дополнительные сведения см. в службе автооткрытия.

Шаг 1. Настройка FQDN в соединителене «Клиентский фронтенд»

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

Если вы изменили полное доменное имя и хотите, чтобы клиенты POP3 или IMAP4 использовали этот соединитель для отправки электронной почты, то новому FQDN должна соответствовать запись на внутреннем DNS-сервере.

Независимо от полного доменного имени, если вы хотите, чтобы внешние клиенты POP3 или IMAP4 использовали этот соединитель для отправки электронной почты, то полному доменному имени должна соответствовать запись на общедоступном DNS-сервере, а TCP-порт (587) должен быть разрешен в брандмауэре на сервере Exchange Server.

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

В этом примере настраивается полное доменное имя mail.contoso.com.

Как проверить, что шаг выполнен?

Чтобы убедиться, что вы успешно выполнили FQDN в соединителене «Client Frontend» Receive, используйте любой из <Server name> следующих процедур:

  • EAC, перейдите к соединитетелям получения потока почты выберите > > Frontend <Server name> клиента, нажмите кнопку Изменить (изменить значок. ) Scoping и проверить значение в поле > FQDN.

  • В командной консоли Exchange выполните следующую команду:

Установка и запуск

Скачивать утилиту не нужно, Telnet встроен в Windows 7/8/10 по умолчанию. Инструкция по установке и запуску:

  • для установки клиента нужно открыть «Панель управления»;
  • далее выбираем «Программы» и «Включение и отключение компонентов»;
  • в списке системных компонентов следует найти «Клиент Telnet»;
  • отмечаем чекбокс и щелкаем «ОК», начнется процесс установки.

Для того, чтобы запустить клиент нужно открыть командную строку:

  • в меню «Пуск», в поисковой строке ввести «CMD»;
  • далее запускаем командную строку от имени администратора и вводим «Telnet»;
  • после этого откроется окно утилиты.

Папка Lost.dir на Андроиде – что это за директория и какие функции выполняет

Предлагаем ознакомиться с видео по установке Телнет в Windows:

Копирование числовых ячеек из 1С в Excel Промо

Решение проблемы, когда значения скопированных ячеек из табличных документов 1С в Excel воспринимаются последним как текст, т.е. без дополнительного форматирования значений невозможно применить арифметические операции. Поводом для публикации послужило понимание того, что целое предприятие с более сотней активных пользователей уже на протяжении года мучилось с такой, казалось бы на первый взгляд, тривиальной проблемой. Варианты решения, предложенные специалистами helpdesk, обслуживающими данное предприятие, а так же многочисленные обсуждения на форумах, только подтвердили убеждение в необходимости описания способа, который позволил мне качественно и быстро справиться с ситуацией.

Отправка письма через telnet без авторизации:

Запускаем консоль (командную строку) и вводим последовательность команд для отправки письма:

  • telnet адрес_сервера 25 — подключаемся к серверу
  • helo имя_хоста_с_которого_подключаетесь
  • mail from:[email protected] — ваш почтовый ящик, с которого отправляется письмо
  • rcpt to:[email protected] — ящик на который отправляется письмо
  • data
  • subject:тема письма — не обязательная команда, если ее пропустить, то письмо будет без темы
  • тут печатаем текст письма
  • текст письма может быть из множества строк
  • конец письма заканчивается одной точкой в отдельной строке
  • как в следующей строке:
  • .
  • quit — завершаем сеанс и выходит из telnet

Ниже копирую из консоли то, как я вводил команды и что получал в ответ (жирный шрифт — мои команды, курсив — ответы сервера):

telnet MailServer 25
220 domain.com.ua Microsoft ESMTP MAIL Service, Version: 42
helo
250 domain.com.ua Hello 
mail from:[email protected]
250 2.1.0 [email protected] OK
rcpt to:[email protected]
250 2.1.5 [email protected]
data
354 Start mail input; end with <CRLF>.<CRLF>
subject:тема письма
тут печатаем текст письма
текст письма может быть из множества строк
конец письма заканчивается одной точкой в отдельной строке
как в следующей строке:
.
250 2.6.0 <[email protected]> Queued mail for delivery
quit
221 2.0.0 domain.com.ua Service closing transmission channel

подключение к узлу утеряно

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

Действие 3. Использование протокола Telnet на порте 25 для проверки связи по протоколу SMTP.

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

  • Сервер SMTP назначения: mail1.fabrikam.com
  • Исходный домен: contoso.com
  • Адрес электронной почты отправитель: [email protected]
  • Адрес электронной почты получателя: [email protected]
  • Тема сообщения: Тест от Contoso
  • Текст сообщения. Это тестовая

Совет

Команды в клиенте Telnet не чувствительны к делу. Глаголы команд SMTP в этом примере капитализируются для ясности. Вы не можете использовать клавишу backspace в сеансе Telnet после подключения к серверу SMTP назначения. Если при введите команду SMTP, необходимо нажать кнопку Ввод, а затем снова ввести команду. Неучтаные команды SMTP или ошибки синтаксиса приводит к сообщению об ошибке, которое выглядит так: .

  1. Откройте окно Командная подсказка, введите и нажмите кнопку Ввод.

    Эта команда открывает сеанс Telnet.

  2. Введите и нажмите кнопку Ввод.

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

  3. Введите и нажмите кнопку Ввод.

    Эта необязательная команда включает ведение журнала и указывает файл журнала для сеанса Telnet. Если указать только имя файла, файл журнала находится в текущей папке. Если указать путь и имя файла, путь должен быть на локальном компьютере, и может потребоваться ввести путь и имя файла в формате Windows DOS 8.3 (короткое имя без пробелов). Путь должен существовать, но файл журнала создается автоматически.

  4. Введите и нажмите кнопку Ввод.

  5. Введите и нажмите кнопку Ввод.

  6. Введите и нажмите кнопку Ввод.

  7. Введите и нажмите кнопку Ввод.

    Необязательная команда NOTIFY указывает определенные сообщения уведомления о состоянии доставки (DSN) (также известные как сообщения отказов, отчеты о неделиверии или NDRs), которые должен предоставить SMTP. В этом примере запрашивается сообщение DSN для успешной или неудачной доставки сообщений.

  8. Введите и нажмите кнопку Ввод.

  9. Введите и нажмите кнопку Ввод.

  10. Еще раз нажмите клавишу ВВОД.

    Между субъектом: полем и телом сообщения необходима пустая строка.

  11. Введите и нажмите кнопку Ввод.

  12. Введите период ( . ) и нажмите клавишу ВВОД.

  13. Чтобы отключиться от сервера SMTP, введите и нажмите кнопку Ввод.

  14. Чтобы закрыть сеанс Telnet, введите и нажмите кнопку Ввод.

Вот как выглядит успешное занятие с помощью вышеуказанных действий:

VRFY

Команда VRFY является сокращением от verify (англ. проверить — Прим. пер.). Ее можно использовать для определения возможности доставки сервером почты определенному получателю перед выполнением команды RCPT. Формат этой команды следующий:

VRFY username

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

Команда VRFY может оказаться эффективным инструментом при поиске неполадок в работе электронной почты. Довольно часто, отправляя почтовые сообщения, пользователи ошибаются при написании имени адресата или хоста и затем недоумевают, почему их сообщения не были получены. Конечно, первое, что они предпримут, — это пожалуются администратору почтовой системы на отвратительную работу системы электронной почты. Как администратор почтовой системы вы, можете проверить работоспособность адресов электронной почты двумя путями. Во-первых, с помощью команды DNS host, которая позволяет определить правильность доменного имени и наличие почтового сервера, обслуживающего домен. И во-вторых, можно зайти с помощью telnet на порт 25 почтового сервера и затем задать команду VRFY, которая определит правильность имени пользователя. В листинге 5.3 показан пример использования команды VRFY для проверки имен пользователей.

1 riley@shadrach riley$ telnet localhost 25
2 Trying 127.0.0.1...
3 Connected to localhost.
4 Escape character is '^]'.
5 220 shadrach.smallorg.org ESMTP Sendmail 8.9.38.9.3; Thu, 26 Aug 1999 19:20:16 -050
6 HELO localhost
7 250 shadrach.smallorg.org Hello localhost 127.0.0.1, pleased to meet you
8 VRFY rich
9 250 <rich@shadrach,smallorg.org>
10 VRFY [email protected]
11 252 <[email protected]>
12 VRFY jessica
13 550 jessica... User unknown
14 QUIT
15 221 shadrach.smallorg.org closing connection
16 Connection closed by -foreign host.
17 riley@shadrach riley$

В строках 8–13 представлены результаты выполнения команды VRFY. В строке 8 делается попытка выполнить VRFY для локального пользователя rich. Ответ SMTP- сервера в строке 9 подтверждает, что пользователь с таким именем имеется в системе, и клиенту возвращается его полный адрес электронной почты. В строке 10 показан еще один вариант задания команды VRFY. Здесь клиент пытается выполнить команду VRFY для пользователя на удаленном компьютере. Ответ, полученный в строке 11 от системы shadrach, отличается от результата, полученного в строке 9. В разделе «Ответы сервера» значения кодов, возвращаемых сервером, обсуждаются более детально. В нашем случае отметим, что система shadrach уведомляет клиента о том, что почта будет пересылаться пользователю prez на удаленном сервере meshach.smallorg.org. Строка 12 отображает попытку проверить несуществующее имя в системе meshach. Ответ SMTP-сервера в строке 13 в пояснениях не нуждается.

Проверить существования пользователя используя bash и curl.$ echo -e «VRFY [email protected]\n QUIT» | curl telnet://mail.example.com:25
220 mail.1-talk.com ESMTP Postfix
252 2.0.0 [email protected]
221 2.0.0 Bye

Настройка OpenDKIM и Postfix

OpenDKIM

Переносим старый конфигурационный файл opendkim и создаем новый.

а) Linux:

mv /etc/opendkim.conf /etc/backup.opendkim.conf

vi /etc/opendkim.conf

б) FreeBSD:

mv /usr/local/etc/mail/opendkim.conf /usr/local/etc/mail/backup.opendkim.conf

ee /usr/local/etc/mail/opendkim.conf

Создаем новую конфигурацию.

Добавим следующие строки:

AutoRestart             Yes
AutoRestartRate         10/1h
Umask                   002
Syslog                  yes
SyslogSuccess           Yes
LogWhy                  Yes
Canonicalization        relaxed/simple
ExternalIgnoreList      refile:/etc/opendkim/TrustedHosts
InternalHosts           refile:/etc/opendkim/TrustedHosts
KeyTable                refile:/etc/opendkim/KeyTable
SigningTable            refile:/etc/opendkim/SigningTable
Mode                    sv
PidFile                 /var/run/opendkim/opendkim.pid
SignatureAlgorithm      rsa-sha256
UserID                  opendkim:opendkim
Socket                  inet:12301@localhost

* все параметры можно оставить, как в данном примере, за исключением Socket — можно указать любой другой порт, вместо 12301.

Создаем каталог /etc/opendkim (например, в Debian он не создается автоматически):

mkdir /etc/opendkim

* если увидим сообщение mkdir: cannot create directory ‘/etc/opendkim’: File exists, то значит, каталог и так создан.

Создаем файл доверенных узлов. В него пока войдут имя локального хоста (localhost) и его IP-адрес, которые будут приняты, как доверенные и подписаны:

vi /etc/opendkim/TrustedHosts

И вносим следующее:

127.0.0.1
localhost

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

Создаем остальные конфигурационные файлы (если их нет):

touch /etc/opendkim/{KeyTable,SigningTable}

Открываем файл /etc/default/opendkim:

vi /etc/default/opendkim

… его либо не должно быть, либо он должен быть пустой, либо проверяем строку с настройкой SOCKET и приводим ее к виду:

SOCKET=inet:12301@localhost

Запускаем службу opendkim.

На Linux:

а) CentOS: 

systemctl enable opendkim —now

* для старый систем это будут команды chkconfig opendkim on и service opendkim start.

б) Ubuntu / Debian:

systemctl enable opendkim

systemctl restart opendkim

На FreeBSD:

Сначала добавляем демона в rc.conf:

echo ‘milteropendkim_enable=»YES»‘ >> /etc/rc.conf

echo ‘milteropendkim_uid=»opendkim»‘ >> /etc/rc.conf

* первая команда разрешает запуск демона, вторая — принудительно заставляет его запускаться от пользователя opendkim.

И запускаем его:

service milter-opendkim start

Postfix

Открываем конфигурационный файл.

Linux:

vi /etc/postfix/main.cf

FreeBSD:

ee /usr/local/etc/postfix/main.cf

Добавляем или редактируем:

milter_protocol = 2
milter_default_action = accept
smtpd_milters = inet:localhost:12301
non_smtpd_milters = inet:localhost:12301

* если smtpd_milters и non_smtpd_milters присутствуют в конфигурационном файле, то приведенные в данном примере значения нужно дописать к имеющимся.
** 12301 — порт работы opendkim, который был задан в opendkim.conf.

Перезапускаем Postfix:

systemctl restart postfix

или:

service postfix restart

Действие 3. Использование протокола Telnet на порте 25 для проверки связи по протоколу SMTP.

В этом примере используются следующие значения.

  • Сервер SMTP назначения: mail1.fabrikam.com

  • Исходный домен: contoso.com

  • Адрес электронной почты отправитель: [email protected]

  • Адрес электронной почты получателя: [email protected]

  • Тема сообщения: Тест от Contoso

  • Текст сообщения. Это тестовая

Примечание

  • Команды клиента Telnet вводятся без учета регистра. Команды SMTP набраны заглавными буквами для большей ясности.

  • Нельзя использовать клавишу backspace после подключения к серверу SMTP назначения в сеансе Telnet. Если при вводе команды SMTP допущена ошибка, следует нажать клавишу ВВОД и повторно ввести команду. Неизвестные команды SMTP или синтаксические ошибки приведут к появлению сообщения об ошибке следующего вида:

    >
    «`console
    500 5.3.3 Unrecognized command
    «`

  1. В командной подсказке введите telnet и нажмите кнопку ENTER. Эта команда открывает сеанс Telnet.

  2. Введите набор localecho и нажмите кнопку ENTER. Эта необязательная команда позволяет видеть вводимые знаки. Этот параметр может быть необходим для некоторых SMTP-серверов.

  3. Введите журнал набора <filename> . Это необязательная команда включает ведение журнала сеанса Telnet в указанный файл журнала. Если указать только имя файла, местоположением файла журнала будет текущий рабочий каталог. При указании пути и имени файла путь должен быть локальным для компьютера. Путь и имя файла необходимо вводить в формате Microsoft DOS 8.3. Указанный путь должен уже существовать. Если указать файл журнала, который не существует, он будет создан.

  4. Введите открытую mail1.fabrikam.com 25 и нажмите кнопку ENTER.

  5. Введите EHLO contoso.com нажмите кнопку ENTER.

  6. Введите ПОЧТУ ОТ:contoso.com @ и нажмите КНОПКУ ВВОД.

  7. Тип RCPT TO:[email protected] NOTIFY=success,failure and then press ENTER. Необязательная команда NOTIFY определяет конкретные уведомления о доставке, которые SMTP-сервер назначения должен предоставить отправителю. Уведомления о доставке определены в стандарте RFC 1891. В данном случае запрашивается уведомление об успешной доставке или невозможности доставки сообщения.

  8. Введите ДАННЫЕ и нажмите КНОПКУ ВВОД. Появится отклик, подобный приведенному ниже:

  9. Тема типа: тест из Contoso и нажмите кнопку ENTER.

  10. Нажмите клавишу ВВОД. RFC 2822 требует пустой линии между полем заголовки и телом сообщения.

  11. Введите это тестового сообщения, а затем нажмите ВВОД.

  12. Нажмите КНОПКУ ВВОД, введите период ( . ) и нажмите клавишу ВВОД. Появится отклик, подобный приведенному ниже:

  13. Чтобы отключиться от сервера SMTP назначения, введите QUIT и нажмите кнопку ENTER. Появится отклик, подобный приведенному ниже:

  14. Чтобы закрыть сеанс Telnet, введите выход и нажмите кнопку ENTER.

Основные команды клиента SMTP

  • и тестирование SMTP
  • Альтернативой telnet для тестирования SMTP служит утилита :
    apt install swaks

Формат команд в SMTP прост: command , где command — четырехсимвольная команда протокола SMTP, а parameter — необязательный параметр, определяющий тип данных в команде.

  • EHLO(устаревшая — HELO) Открывает приглашение от клиента
  • MAIL — Определяет отправителя сообщения
  • RCPT — Определяет получателей сообщения
  • DATA — Определяет начало сообщения
  • SEND — Посылает сообщение на терминал
  • SOML — Send-or-Mail
  • SAML — Send-and-Mail
  • RSET — Сброс SMTP-соединения
  • VRFY — Проверяет имя пользователя системы
  • EXPN — Запрашивает список псевдонимов
  • HELP — Запрашивает список команд
  • NOOP — No operation — Ничего не делать
  • QUIT — Остановить сеанс SMTP
  • TURN — Реверс ролей в SMTP (клиент становится сервером)
  • AUTH — Показывает серверу механизм аутентификации. RFC 4954 (заменил RFC 2554).

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: