์ด ๋ฌธ์„œ์˜ ์›๋ณธ์€ ์™ธ๋ถ€ ์œ„ํ‚ค์—์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.
1. ๊ฐœ์š”

1. ๊ฐœ์š”[ํŽธ์ง‘]

๊ฐ„์ด ์šฐํŽธ ์ „์†ก ํ”„๋กœํ† ์ฝœ(Simple Mail Transfer Protocol)์˜ ์•ฝ์ž. ์ด๋ฉ”์ผ ์ „์†ก์— ์‚ฌ์šฉ๋˜๋Š” ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

์ธํ„ฐ๋„ท์—์„œ ๋ฉ”์ผ ์ „์†ก์— ์‚ฌ์šฉ๋˜๋Š” ํ‘œ์ค€์ด๋‹ค. 1982๋…„ RFC821์—์„œ ํ‘œ์ค€ํ™”๋˜์–ด ํ˜„์žฌ๋Š” RFC5321์—์„œ ์ •์˜๋œ ESMTP(Extended SMTP; ํ™•์žฅ SMTP)๋กœ 2008๋…„ ๊ฐฑ์‹ ๋˜์—ˆ๋‹ค. SMTP๋Š” ๋ณด์•ˆ๊ณผ ํ˜ธํ™˜์„ฑ์˜ ๋ฌธ์ œ๋กœ ๊ทธ๋Œ€๋กœ๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์“ฐ์ด๋Š” ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์€ SMTP-AUTH(์†ก์‹ ์ž ์ธ์ฆ ์„œ๋น„์Šค), ESMTP(SASL์„ ์ด์šฉํ•œ ๋ณด์•ˆ ์—ฐ๊ฒฐ), MIME(non-ascii ๋ฐ์ดํ„ฐ ์ „์†ก ํฌ๋งท)๊ฐ€ ์žˆ๋‹ค.

SMTP๋Š” 25/tcp์™€ 587/tcp ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ SMPTS๋Š” 465/tcp ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.


SMTP๋Š” ์—ฐ๊ฒฐ์ง€ํ–ฅ์ ์ด๊ณ  ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค. SMTP ํด๋ผ์ด์–ธํŠธ์™€ SMTP ์„œ๋ฒ„ ์‚ฌ์ด์— SMTP ์„ธ์…˜์ด ์ƒ์„ฑ๋˜๋ฉฐ, ๋ช…๋ นํ–‰์„ ์ด์šฉํ•ด ๋ฉ”์ผ์„ ์†ก์ˆ˜์‹ ํ•œ๋‹ค. SMTP ๊ตํ™˜์€ ๋‹ค์Œ์˜ ์„ธ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง„๋‹ค.
  1. MAIL ๋ช…๋ น์–ด: ์ˆ˜์‹ ์ž ์ง€์ •
    2. RCPT ๋ช…๋ น์–ด: ์†ก์‹ ์ž ์ง€์ •
    3. DATA ๋ช…๋ น์–ด: ๋ฉ”์‹œ์ง€ ๋‚ด์šฉ์˜ ์‹œ์ž‘์ด ๋˜๋Š” ๋ถ€๋ถ„์ด๋‹ค. ๋ฉ”์‹œ์ง€ ํ—ค๋”์™€ ๋ฐ”๋””๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.


SMTP ์„ธ์…˜์˜ ์˜ˆ[1]:
S: 220 smtp.example.com ESMTP Postfix
C: HELO relay.example.org
S: 250 Hello relay.example.org, I am glad to meet you
C: MAIL FROM:๏ผœ[email protected]๏ผž
S: 250 Ok
C: RCPT TO:๏ผœ[email protected]๏ผž
S: 250 Ok
C: RCPT TO:๏ผœ[email protected]๏ผž
S: 250 Ok
C: DATA
S: 354 End data with ๏ผœCR๏ผž๏ผœLF๏ผž.๏ผœCR๏ผž๏ผœLF๏ผž
C: From: "Bob Example" ๏ผœ[email protected]๏ผž
C: To: "Alice Example" ๏ผœ[email protected]๏ผž
C: Cc: [email protected]
C: Date: Tue, 15 January 2008 16:02:43 -0500
C: Subject: Test message
C:
C: Hello Alice.
C: This is a test message with 5 header fields and 4 lines in the message body.
C: Your friend,
C: Bob
C: .
S: 250 Ok: queued as 12345
C: QUIT
S: 221 Bye
{The server closes the connection}

๊ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋งˆ๋‹ค smtp ์‚ฌ์šฉ์„ ์œ„ํ•œ lib๋ฅผ ์ง€์›ํ•œ๋‹ค. Python ๊ฒฝ์šฐ์—๋Š” smtplib๊ฐ€ ๊ธฐ๋ณธ ๋‚ด์žฅ๋˜์–ด ์žˆ์œผ๋ฉฐ SSL/TLS ์ธ์ฆ์„ ์ง€์›ํ•˜์—ฌ gmail ์ด๋‚˜ ๋„ค์ด๋ฒ„ ๋ฉ”์ผ์„ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค. ๋‹จ ๋ฌธ์ œ๋Š” script ์ƒ์—์„œ ๊ณ„์ • ์ •๋ณด์™€ ํŒจ์Šค์›Œ๋“œ๊ฐ€ ๋…ธ์ถœ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์•ˆ์— ์œ ์˜ํ•ด์•ผ ํ•œ๋‹ค์˜ˆ์ œ์ฝ”๋“œ.
[1] telnet ์œผ๋กœ ํฌํŠธ25์— ์ ‘์†ํ•ด๋ณด์ž