Python에서 SMTP 메일 서버를 사용하여 이메일을 보내는 방법에 대하여 알아봅니다(참고로 받는 경우 POP 방식). 어떻게하면 Python에서 메일 발송을 할 수 있을까요?




# Python 이메일 보내기, smtplib이메일을 보내기 위해서는 기본적으로 아래와 같이 smtplib라는 Python module이 필요합니다. 이 모듈은 SMTP 방식으로 서버와 연결, 메일을 보낼 수 있도록 도와주는 모듈입니다.

- smtplib이 필요

! Gmail을 사용하여 메일보내기SMTP를 사용하여 메일을 보내려면 사용가능한 SMTP 메일 서버가 필요한데 아래에서는 gmail의 메일서버를 사용할 것입니다. gmail의 smtp 주소는 아래와 같습니다.
smtp.gmail.com:587

위 주소를 gmail에 사용하여 메일을 보내려면 gmail에서 웹어플리케이션에 대한 로그인을 허용하도록 설정을 변경해야합니다. 그렇지않으면 보안 에러가 발생하여 로그인이 불가하고 결국 이메일을 보낼 수 없습니다.




# Python 메일보내기 전체소스보기아래 소스 코드는 메일을 보내는 전체 소스 코드입니다.
import SMTP from smtplib

host = 'smtp.gmail.com:587'
fromWho = 'fromWho'
toWho = 'toWho'
subject = 'Hi there!'
content = 'blah blah...'

msg = '\r\n'.join([
  'From: ' + fromWho,
  'To: ' + toWho,
  'Subject: ' + title,
  '',
  content
])

conn = SMTP(host)
conn.ehlo()
conn.starttle()

conn.login('username@example.com', 'password')

conn.sendmail(fromWho, toWho, msg)
conn.close()

간단하게 설명하면...

먼저 smtplib 모듈을 import 하도록 합니다.
그리고 변수에 필요한 정보 보내는 사람이나 제목 등을 입력합니다.
msg는 각각 \r\n을 사용하여 보내는 사람, 받는 사람, 제목 그리고 본문까지 구분됩니다. 이를 쉽게 작성하기 위해서 join()을 사용하였습니다.
conn을 사용하여 서버에 연결하면 마지막에는 close()를 사용하여 꼭 서버를 중단해야합니다.