smtp protocol 簡介

SMTP Protocol
(sonet.all@gmail.com)





1.  Find MX Record




nslookup


> set q=mx
> program.com.tw


Server: 127.0.1.1
Address: 127.0.1.1#53


Non-authoritative answer:
program.com.tw mail exchanger = 5 se2.program.com.tw.
program.com.tw mail exchanger = 10 mail.program.com.tw.


<>


nslookup -q=mx yahoo.com
nslookup -q=mx google.com




2. SMTP Protocol (Simple Mail Transfer Protocol)






b. Example of the SMTP Procedure


S: EHLO program.com.tw
R: 250-se2.program.com.tw
    250-PIPELINING
    250-8BITMIME
    250 SIZE 52428800


S: MAIL FROM:
R: 250 OK


S: RCPT TO:
R: 250 OK


S: RCPT TO:
R: 504 Authentication failed for SMTP service. --> (system logout)


S: RCPT TO:
R: 550 User (test_account@program.com.tw) unknown.


S: DATA
R: 354 Start mail input; end with .
           
From: luke@program.com.tw
To: TEST
Subject: [測試信件]
Content-Type: text/plain; charset="utf-8"


您好,
=============================================
.  <-- n.="" n="" r="" span="">
R: 250 OK



3. MIME(Multipurpose Internet Mail Extensions)






MIME-Version: 1.0
Received: by 10.52.168.69 with HTTP; Wed, 17 Apr 2013 20:07:28 -0700 (PDT)
Date: Thu, 18 Apr 2013 11:07:28 +0800
Delivered-To: sonet.all@gmail.com
Message-ID:
Subject: for demo
From: =?UTF-8?B?6Jab5YWx5ZKMKGx1a2Up?=
To: =?UTF-8?B?6Jab5YWx5ZKMKGx1a2Up?=
Content-Type: multipart/mixed; boundary=
20cf307cfbe2188ff404da99e72b
--20cf307cfbe2188ff404da99e72b
Content-Type: multipart/alternative; boundary=20cf307cfbe2188ff004da99e729
--20cf307cfbe2188ff004da99e729
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: base64

5ris6Kmm5aS+5qqUDQoNCi0tIA0KDQp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQogICBCMkMg6Zu75a2Q55m856WoIOWKoOWAvOacjeWLmeS4reW/gyAgKOW+rueoi+W8j+acg+WToSkNCg0KTGlmZSsg6IGw5piO5oiR55qE5raI6LK755Sf5rS777yBaHR0cDovL3d3dy5saWZlcGx1cy50dw0Kfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fg0K
--20cf307cfbe2188ff004da99e729
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: base64

PGRpdiBkaXI9Imx0ciI+PGRpdj48YnI+PC9kaXY+5ris6Kmm5aS+5qqUPGJyIGNsZWFyPSJhbGwiPjxkaXY+PGJyPjwvZGl2Pi0tIDxicj48ZGl2Pjxicj48L2Rpdj48ZGl2Pn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn48L2Rpdj48ZGl2PsKgIMKgQjJDwqDpm7vlrZDnmbznpagg5Yqg5YC85pyN5YuZ5Lit5b+DIMKgKOW+rueoi+W8j+acg+WToSnCoDwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+TGlmZSsg6IGw5piO5oiR55qE5raI6LK755Sf5rS777yBPGEgaHJlZj0iaHR0cDovL3d3dy5saWZlcGx1cy50dy8iIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vd3d3LmxpZmVwbHVzLnR3PC9hPjwvZGl2Pg0KPGRpdj5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+PC9kaXY+DQo8L2Rpdj4NCg==
--20cf307cfbe2188ff004da99e729--
--20cf307cfbe2188ff404da99e72b
Content-Type: application/octet-stream; name="=?UTF-8?B?5ZyW6KGoMS5kaWF+?="
Content-Disposition: attachment; filename="=?UTF-8?B?5ZyW6KGoMS5kaWF+?="
Content-Transfer-Encoding: base64
X-Attachment-Id: f_hfncm3cs0

H4sIAAAAAAACA+1dzXLbRhK++ylYzHGVEeZ/JoqdchSn4qqN44qVbDYXFURCFDYQoAUh2/JhL3vdF9in2Lfa2sfY6RnKFklAIgkMTNjDVBKTHk5jwO4PX/f0dH/9zdvLbPQ6KedpkT8eYxSNR0k+KaZpPns8/uXk+y/V+Jsnj76epvFX5t9ZGV+OzDfyObx7PL6oqquvDg/fvHmDspt5XBUlytJrNE8O/xFnWXxoBh2Onzwaje5OMI2rGD5bfBpXVZmeXVfJKI8vk8fjs3jyx6wsrvPp2I1ajJsUWVGOXsfZ4/EX5/Y1PlxMc7g0zz1zX8Wz5KxM4j+ap47MS+tdpr5KytVpL6+KeWqGVDdXa0Ma5oH/3hmzGDU3g/LZky+esi/cJS0++DBX3YU2Cqku43KW5utyzL3J3I0gSBFCzM3gWulIMolv78n24s76FZf1K67sV1w6P70qyqqM02pd5FlRZEmcO6lVeZ3sLmc+iTOjYvctq8UqztOqKh64/vM4m2+yAPfxe2vb1nJnZTq933CXRjTM8iadVhenbz3dLjf7jafZX6fz9CxL6q4+zavOpr/pZvrVX8ei94evt9QGN1vj42GqEp7w7R8Ps+t0mswfULPlMQ0zXSyGHT5011fHbXpj3EcrD2srIotvknIx/f/++a///vs/49Hix12gzSieVOnr23d37kdx9rdkUi0W+n1WvJlcxGU1+nJ0kpSXaR5n4zssZDxKp4/HP0XLt2t1gWZKg4Rr9+uq+KBUGkl+gPHqPVhHkKb5z85Wpy/NMuJ8liUfRBzgCGl+RBT8kSK2m7jLpIrHD6j6NJ1Uu82eZMnl6aQo83UG0tkNszIsUq3ftFuUUkjpuy8lWsi6SNLZRdUsjCDKlqTtKMw8B5OHFhYhHLkXZjrCWGDSQhhAznW5rg5NFHg7Eedplm0gAhazq4j5RfHmtIbKP8xTtr5X8+omS1YFJPn15eKHWUPK2mfmNmKv
4ul0mRo1KsPta0dJVfK2eggUVsY0/SDWYVgat+JbvKoMIje4F/c8k5t0rMirOmnw+eg8vkyzG3NRcT4fj+wPaKDB+J7uuz8k2eukSifxl98W2fTu77f9daxhRO3PpRhhlNJICSokp0y1E7r8WKpDWsIQOcAGoBQX7WQtE5YN0WIXQcYdmOWXSf3P+sHe8IZSaunIljiWpVenF0WZvjNKZSjEfSCz4kxsLcawE9BIb0Lm12fgcSXjncHKfeiIVhPzMjaeT+NyaojXt8XbO5wrWnAu3JZzkQgZBiER5h5ZlxHCnBRgXcT8USPBfTKjtsvahBtJJJefAAA=
--20cf307cfbe2188ff404da99e72b--


4. Mail to another host or mail to gmail




a. MTA (Message transfer agent)


# perl -MMIME::Base64 -e 'print encode_base64("steveweb")'
c3RldmV3ZWI=


# perl -MMIME::Base64 -e 'print encode_base64("123")'
MTIz


S: EHLO program.com.tw
R: 250-mail.program.com.tw
    250-PIPELINING
    250-8BITMIME
    250-AUTH=LOGIN
    250-AUTH LOGIN
    250-STARTTLS
    250 SIZE 1004288000


S: AUTH LOGIN
R: 334 VXNlcm5hbWU6


S: c3RldmV3ZWI=
R: 334 UGFzc3dvcmQ6


S: MTIz
R: 235 Authentication successful.


S: mail from: steveweb@program.com.tw <- span="">
R: 250 Sender <steveweb@program.com.tw> OK


S: rcpt to: sonet.all@gmail.com <- span="">
R: 250 Recipient <sonet.all@gmail.com> OK


S: data
R: 354 Start mail input; end with .
           
From: luke@program.com.tw
To: TEST
Subject: [測試信件]
Content-Type: text/plain; charset="utf-8"


您好,
=============================================
.  <-- n.="" n="" r="" span="">


QUIT



b. Secure SMTP over Transport Layer Security   


 The following dialog illustrates how a client and server can start a
  TLS session:

  S:
  C:
  S: 220 mail.imc.org SMTP service ready
  C: EHLO mail.example.com
  S: 250-mail.imc.org offers a warm hug of welcome
  S: 250-8BITMIME
  S: 250-STARTTLS
  S: 250 DSN
  C: STARTTLS
  S: 220 Go ahead
  C:
  C & S:
  C & S:
  C: EHLO mail.example.com
  S: 250-mail.imc.org touches your hand gently for a moment
  S: 250-8BITMIME
  S: 250 DSN