Python에서 메일 전송하는 방법(send mail from python function)

in #kr-dev8 years ago

안녕하세요 @flyyou입니다.

시간이 날때마다 Python을 공부해 보고 있습니다.

java, c, c++, c#, vb등 코딩을 해 보았는데 역시나 Python은 간단하고도 강력하네요

메일 보내는 방법이 너무 쉽습니다.

function으로 만들어 두고 해당 function을 호출해서 사용해서 뭐라도 만들어 봐야겠습니다.

이전에 코인가격을 주기적으로 쓰레드로 호출해서 화면에 기록하고 특정 수치 밑으로 내려가면 알람을 들려주는

코딩을 한적이 있는데


이메일 버전을 만들었습니다. 다만 좀 더 다듬어야 할 듯 해서 너무 날코딩이라 ㅋㅋ

우선 Python에서 메일 보내는 방법을 알려드리겠습니다. 

def sendEmail(emailtext, fromEmail, fromEmailPW, toEmail):
   msg = MIMEMultipart('alternative')
   msg['To'] = toEmail
   msg['Subject'] = 'Coin Notification!!!'
   msg['From'] = formataddr((str(Header('Python Coin', 'utf-8')), fromEmail))
   part1 = MIMEText(emailtext, 'plain')
   msg.attach(part1)
   #server = smtplib.SMTP('smtp.gmail.com', 587)
   server = smtplib.SMTP_SSL('smtp.naver.com', 465)
   server.ehlo()
   #server.starttls()
   print("########### " + fromEmail + " " + fromEmailPW)
   server.login(fromEmail, fromEmailPW)
   server.sendmail(fromEmail, toEmail, msg.as_string())
   server.close()
   print
   'successfully sent the email'

메일보내는 function을 만들어 보았습니다. 물론 초 간단이지만요...


  • 33 : message의 MIMEMutipart를 지정해 줍니다. 해당 메시지는 텍스트로 전송됩니다.
  • 34 : 받는 분 이메일을 설정합니다.
  • 35 : 제목을 설정합니다.
  • 36 : 보내는분 메일을 설정합니다.
  • 37 : 해당 메일 제목인 emailtext를 plain으로 설정하여 메일을 전송합니다.
  • 38 : 메일 내용을 메일에 attach하는 부분입니다.
  • 40 : smtp서버에 SSL로 접속하는 부분입니다.
          google은 보안이 강화되어서 되지 않고 네이버만 되는군요...
  • 41 : smtp서버에 접속해서 ehlo를 실행합니다.
          해당부분은 메일서버에 접속해서 helo와 같은 의미이며 자기 자신이 누구인지 통지합니다.
  • 43 : 혹시몰라서 접속정보를 디버깅용으로 출력합니다.
  • 44 : 메일서버에 로그인 합니다.
  • 45 : 메일을 전송합니다.
  • 46 : 서버와의 접속을 종료합니다.
  • 47 : 완료되었다는 로그를 기록합니다.

소스코드 참 간단하죠? 이것을 java로 구현하려고 한다라면 관련해서 많은 소스코딩이 필요합니다.

뭐 라이브러리 하나 잘 만들어 놓으면 그럴 필요는 없겠지만 말이죠...


Python으로 위와같이 메일을 전송하기 위해서는 아래와 같은 Python 라이브러리들을 import하여야 합니다.

from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header
from email.utils import formataddr
import smtplib

그렇지 않으면 구동되지 않습니다.


해당 function을 이용해서 코인이 특정 가격 밑으로 떨어지면 메일을 전송하는 기능을 하는 프로그램을 만들어 보겠습니다.

뭐 거창한 기능은 아니지만 하나하나 공부해 가는 입장이라 많이들 응원주시면 감사하겠습니다.

Sort:  

ㅈㅏ바 버전도 잇으면 좋았을텐뎅
제사이트에 써보게용 ㅎㅎ

자바버전은 검색하면 수두룩하게 나올것입니다. 댓글 감사합니다

good post
plise followback..

many thank you...

Coin Marketplace

STEEM 0.13
TRX 0.34
JST 0.036
BTC 109045.05
ETH 4404.36
USDT 1.00
SBD 0.83