Мне нужно написать собственную службу SMTP на C ++, есть требование, что она должна поддерживать SSL, я смотрел на два SMTP RFC 2821 а также RFC 5321, но я не могу понять порядок сообщений. Я получаю следующее от почтового клиента.
Сообщения, полученные от почтового клиента:
[Received from client] EHLO PAULMORRISSAB5A
[Received from client] STARTTLS
[Received from client] ▬▬☺
Какое последнее сообщение и на что должен ответить сервер?
SSL-соединение с SMTP-сервером по протоколу STARTTLS (без аутентификации):
S: <waits for connection on TCP port 25>
C: <opens connection>
S: 220 mail.imc.org SMTP service ready
C: EHLO mail.example.com\r\n
S: 250-mail.imc.org offers a warm hug of welcome
S: 250-8BITMIME
S: 250-STARTTLS
S: 250 DSN
C: STARTTLS\r\n
S: 220 Go ahead
C: <starts TLS negotiation> C & S: <negotiate a TLS session> C & S: <check result of negotiation>
C: EHLO mail.example.com\r\n
S: 250-mail.imc.org touches your hand gently for a moment
S: 250-8BITMIME
S: 250 DSN
C: mail from: <email>\r\n
S: 250 OK
C: rcpt to: <[email protected]>\r\n
S: 250 OK
C: DATA\r\n
S: 354 Go adead
C: From: <email>\r\n
C: To: <[email protected]>\r\n
C: Subject: Hello costam\r\n
C:
C: Hello from email smtp
C:
C: .
S: 250 qued as 5s4f564ds65f4
C: quit
S: 221 Bye...
Простой c ++ ssl smtp клиент здесь:
https://github.com/breakermind/SslSMTPClient
Других решений пока нет …