Протокол SMTP

Содержание:

Формат письма

Заголовки письма

Команды

В конце каждой команды ставится перевод строки: /r/n

MIME

Multipurpose Internet Mail Extension – стандарт, описывающий передачу различных типов данных по электронной почте.

Спецификация для кодирования информации и форматирования сообщений для передачи разного рода информации внутри текстовых данных.

Определяет набор e-mail-заголовков для определения дополнительных атрибутов сообщения.

Определяет множество кодировок, которые могут быть использованы для представления 8-битных бинарных данных с помощью символов из 7-битного ASCII.

Примеры заголовков

Mime-Version – версия MIME.

Mime-Version: 1.0

MIME-Version: 1.0 (Generated by GBD 3.7)

Content-Type – тип сообщения.

Content-Type: text/plain; charset=KOI-8

application: octet-stream

Content-Transfer-Encoding – тип транспортного кодирования

Content-Transfer-Encoding: base64 

Extended SMTP

Механизм расширений протокола SMTP

S: 220 smtp.example.com ESMTP Postfix

C: EHLO bob.example.org

S: 250 smtp.example.com Hello bob.example.org [192.0.2.201]

S: 250 8BITMIME

S: 250 SIZE 14680064

S: 250 AUTH LOGIN PLAIN CRAM-MD5 DIGEST-MD5

S: 250 STARTTLS

S: 250 PIPELINING S: 250 HELP

S: 250 ETRN

S: 250 CHECKPOINT

## AUTH – аутентификация и шифрование

S: 220 smtp.server.com Simple Mail Transfer Service Ready

C: EHLO client.example.com

S: 250-smtp.server.com Hello client.example.com

S: 250 AUTH LOGIN PLAIN CRAM-MD5

C: AUTH LOGIN

S: 334 VXNlcm5hbWU6 Base64(Username:)

C: dm92YQ== Base64(vova)

S: 334 UGFzc3dvcmQ6 Base64(Password:)

C: c2VjcmV0X3Bzd2Q= Base64(secret_pswd)

S: 235 2.7.0 Authentication successful

STARTTLS (Start Transport Layer Security)

C: EHLO client.example.com

S: 250-smtp.server.com Hello client.example.com

S: 250-AUTH LOGIN PLAIN CRAM-MD5

S: 250-STARTTLS

C: STARTTLS

S: 220 TLS go ahead

C:

C: C & S:

C: EHLO client.example.com *

S: 250-smtp.server.com Hello client.example.com

S: 250-AUTH LOGIN PLAIN CRAM-MD5

C: AUTH LOGIN S: 334 VXNlcm5hbWU6

C: dm92YQ== S: 334 UGFzc3dvcmQ6

C: c2VjcmV0X3Bzd2Q=

S: 235 2.7.0 Authentication successful

Заголовок multipart

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

__mixed __ основной подтип;

alternative представление одних и тех же данных в разных форматах;

parallel одновременный просмотр разных частей документа;

digest объединение в одном письме частей, каждая из которых имеет тип message.

Пример multipart/alternative

Content-Type: multipart/alternative; boundary=boundary42

–boundary42

Content-Type: text/plain; charset=us-ascii

… Здесь содержится версия простым текстом ….

–boundary42

Content-Type: text/richtext

…. Здесь содержится версия с разметкой RFC 1341…

–boundary42

Content-Type: text/x-whatever

…. Здесь содержится версия в гипотетическом формате..

–boundary42–

BASE64

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

символы (A—Z, a—z),

цифры (0—9), символы «+» и «/»,

символ «=» в качестве специального кода суффикса.

Hello, World -> SGVsbG8sIFdvcmxk

Настройка зоны DNS: PTR запись

1529606596216

44.33.22.11.in-addr.arpa. IN PTR mail.example.com.

В случае Mail сервера для двух доменов PTR-запись должна указывать на имя почтового хоста (которое он передает в рамках SMTP-сессии), даже если он расположен в другом домене.

Настройка зоны DNS: SPF

1529606695111

1529606720959

DomainKeys Identified Mail

DKIM-Signature: v=1; a=rsa-sha256; d=example.net;

s=brisbane; c=relaxed/simple; q=dns/txt; l=1234;

t=1117574938; x=1118006938;

h=from:to:subject:date:keywords:keywords; bh=MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=; b=dzdVyOfAKCdLXdJOc9G2q8LoXSlEniSbav+yuU4zGeeruD00lszZVoG4 ZHRNiYzR

1529606759348