Протокол SMTP (Mail to SMS)

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

Протокол SMTP и его дополнительные возможности, задействованные в системе, описаны в следующих документах :

  • RFC2821 : Simple Mail Transfer Protocol
  • RFC2554 : SMTP Service Extension for authentication
  • RFC4616 : The PLAIN Simple Authentication and Security Layer (SASL) Mechanism
  • RFC2487 : SMTP Service Extension for Secure SMTP over TLS

1. Параметры

  • Адрес сервера : lcab.smsorg.ru
  • Порт : 2525
  • Тип авторизации : PLAIN (открытым текстом)
  • Шифрованный канал SSL : опционально через команду STARTTLS
  • Login/password : совпадают с login/password на web-сайт http://lcab.smsorg.ru
  • Кодировка сообщений : любая, совместимая с MIME 1.0
  • Максимальная длина сообщений : 480 символов.

2. Трактовка адресов отправителя и получателя

Домен получателя может принимать значения :

  • lcab.smsorg.ru : отправка текстовых сообщений на мобильные телефоны (SMS).

Адрес получателя трактуется следующими способами :

  • Адрес list_XXXXX@… воспринимается как команда разослать сообщение на контакт- лист с кодовым именем XXXXX. Контакт-листы и их кодовые имена настраиваются в WEB-интерфейсе http://lcab.smsorg.ru.
  • В противном случае, при отсылке на XXXXX@…, XXXXX воспринимается как номер
    телефона. Символы '(',')','-' игнорируются.

Адрес отправителя почтового email сообщения используется только в тех случаях, когда отправка идет на номер телефона, и преобразуется в имя отправителя сообщения на мобильный телефон. Преобразование производится по следующему алгоритму :

  • Если email отправитель зарегистрирован как псевдоним отправителя телефонного
    сообщения, то используется соответствующий ему отправитель телефонного
    сообщения.
  • Если email начинается с 'default@', то используется отправитель по умолчанию для
    агента.
  • В остальных случаях за отправителя принимается текст до знака '@', а домен -
    игнорируется.

3. Специальные расширения протокола

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

S: 250 <id> message accepted

, где <id> - идентификатор сообщения. В последствии статус сообщения можно узнать командой «STATUS» :

C: STATUS <id>
S: 250 <id> <res_count> <closed> <status_code> any text

, где

  • <id> - идентификатор сообщения;
  • <res_count> - количество единиц ресурса. Для SMS сообщений - количество
  • кусков. Передается как вещественное число (например, «1.0»).
  • <closed> - [0,1] - признак закрытия процессинга сообщения;
  • <status_code> - код статуса, где «0» - сообщение находится в процессе доставки;
    «1» - сообщение принято оператором, но статус доставки неизвестен;
    «2» - сообщение доставлено;
    «3» - время попыток доставить сообщение оператором истекло;
    «5» - сообщение не может быть доставлено (ошибка в номере, номер не существует и т.д.);
    «8» - сообщение не принято оператором;
    «20» - отправка была отменена пользователей;
    «21» - ошибка системы;
    «22» - оператор не сообщил о состоянии сообщения за отведенное время.

4. Пример сеанса отсылки SMS

S: 220 Message gateway
C: EHLO mycomputer
S: 250-SMTP Server
S: 250-8BITMIME
S: 250-STARTTLS
S: 250-AUTH LOGIN PLAIN
S: 250 Ok
C: AUTH PLAIN
S: 334 Ok
C: ADMAZnJlZXRlc3Q=
S: 235 Authentication successful.
C: MAIL FROM:
S: 250 Ok
C: RCPT TO:<89061234567@lcab.smsorg.ru>
S: 250 Ok
C: DATA
S: 354 End data with .
C: From: SMSGW
C: To: 89061234567@lcab.smsorg.ru
C: MIME-Version: 1.0
C: Content-Type: text/plain; charset=windows-1251
C: Content-Transfer-Encoding: quoted-printable
C:
C: Privet !
C: .
C: 377
S: 250 33 message accepted.
C: STATUS 4418
S: 250 4418 1 0 0 Message is accepted for delivery
C: RSET
S: 250 Ok
C: QUIT