Python/2.7 information

python smtp(메일보내기)

qkqhxla1 2016. 12. 14. 18:12

파이썬의 smtp모듈을 이용하여 메일을 보낼 수 있다. 내가 네이버 메일을 많이 쓰기에, 또 네이버는 설정이 필요해서 네이버로 메일 보내는 예제만 적었다.(구글은 설정 없이 메일 받기가 가능하다.)


1. 네이버 메일 설정.


1)메일로 들어가서 아래의 환경설정으로 들어간다.

2) 아래처럼 설정해준다.

2. 파이썬을 이용해서 내 메일로 메일을 보내 본다. 

구글링해서 나온 소스코드를 사용했다.

# -*- encoding: cp949 -*-
import smtplib
gmail_user = '본인 메일주소.' #본인 네이버 메일. asdfasfas@naver.com과 같은 형식으로 입력한다.
gmail_pwd = '비밀번호' #본인 네이버 계정 비밀번호 입력.
FROM = gmail_user
TO = ['qkqhxla1@naver.com'] #보낼 메일 주소.
SUBJECT = '성공'.encode('utf-8') #한글을 보내려면 반드시 utf-8로 인코딩해야합니다.
TEXT = "Hello!"
# Prepare actual message
message = """\From: %s\nTo: %s\nSubject: %s\n\n%s
""" % (FROM, ", ".join(TO), SUBJECT, TEXT)
try:
    server = smtplib.SMTP("smtp.naver.com", 587)
    server.ehlo()
    server.starttls()
    server.ehlo()
    server.login(gmail_user, gmail_pwd)
    server.sendmail(FROM, TO, message)
    server.close()
    print 'successfully sent the mail'
except smtplib.SMTPException:
    print "failed to send mail"

3. 제대로 메일이 보내졌음을 알 수 있다.


엄청 간단해 보이는데 이거 하는데 3시간 걸렸다...


예약 메일 기능도 구현하고 싶었는데 안된다. 네이버의 예약 메일 기능은 smtp의 기능이 아니라. 네이버, 구글등의 포탈에서 제공해주는 기능이다. 즉 위의 smtp소스에서 인자 몇개 추가해서 예약 메일을 보낼수 있으리라고 생각했는데 아니었다.