[Python] 네이버 메일보내기

본 포스팅에서는 파이썬에서 SMTP를 통하여

메일을 보내볼것입니다.

 

우선 SMTP는 Simple Mail Transfer Protocol의 약자이고,

이메일을 이해하려면 우선 MIME부터 살펴볼 필요가 있습니다.

MIME(Multipurpose Internet Mail Extensions)는 전자우편을 위한 인터넷표준 포맷입니다.

 

네이버메일을 쓰려면에서 SMTP 설정을 먼저 해주어야합니다.

빨간박스를 잘 봐주시길 바랍니다.

 

자, 이제 코드를 보겠습니다.

import smtplib
from email.mime.text import MIMEText

sendEmail = "naverID@naver.com"
recvEmail = "받는사람 주소"
password = "naverPW"
mailname = "메일 제목"
text = "매일 내용"

smtpName = "smtp.naver.com" #smtp 서버 주소
smtpPort = 465 #smtp 포트 번호

msg = MIMEText(text) #MIMEText(text, _charset = "utf8")

msg['Subject'] = mailname
msg['From'] = sendEmail
msg['To'] = recvEmail
print(msg.as_string())

s=smtplib.SMTP_SSL( smtpName, smtpPort ) #메일 서버 연결
#s.starttls() #TLS 보안 처리 ->SMTP_SSL이 아닌경우 사용
s.login( sendEmail, password ) #로그인
s.sendmail( sendEmail, recvEmail, msg.as_string() ) #메일 전송, 문자열로 변환하여 보냅니다.
s.close() #smtp 서버 연결을 종료합니다.

 

변수부분은 넘어가고,

s=smtplib.SMTP_SSL(smtpName, smtpPort)

메일서버와 포트를 통해 서버를 연결합니다.

여기서 smtplib.SMTP_SSL 부분을 smtplib.SMTP로 바꿀 수 있으나

그렇게되면 s.starttls()를 추가해 주어야 합니다.

 

위 코드에서 설명이 미흡한 부분을 보충하자면

s.login(user, password)

인증이 필요한 STMP 서버에 로그인, 매개변수에는 인증할 사용자메일과, 암호이 들어갑니다.

 

s.sendmail(from_addr, to_addrs, msg, msg.as_string())

메일발송, 매개변수에는 (발신주소, 수신주소, 메시지문자열)이 들어갑니다.

 

gmail 또한 비슷합니다.

제일 위처럼 구글 gmail에 들어가서 설정 먼저 해주고,

SMTP서버 주소와 포트번호 변경해주시면 됩니다.

 

*추가

메일에 첨부파일이나 이미지 등을 추가하려면

"mail.mime" 에 대해 알아봐야 합니다.