프로젝트/SRT&KTX 매진표 예매
SRT&KTX 기차표 매크로 예매 - (13) 예매시 이메일 보내기(smtplib, email)
매크로메이커
2024. 1. 17. 01:28
이제 이메일을 보내보자.
모든 이메일 서버를 지원하기에는 공수가 많이 들어가니 가장 많이 사용하는 gmail로 발신 서버를 제한한다.
python에서 gmail을 보내려면 사전 세팅이 좀 필요한데, 아래 블로그를 참고하여 준비하자.
Python으로 Gmail 보내기
나름의 이유로 시스템에서 메일을 보내야할 일이 있는데, 이왕이면 Gmail을 이용해보고 싶어서 살펴보기로 했다. 일단 Gmail을 통해 이메일을 보내기 위해서 미리 셋팅을 해줘야 할 것이 있다. Gmail
www.whatwant.com
콜백 함수까지 포함해서 코드를 완성하면 아래와 같다.
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
class Email:
def __init__(self, sender, passwd, receiver, error_callback, try_callback):
self.error_callback = error_callback
self.try_callback = try_callback
self.gmail_smtp = "smtp.gmail.com" # gmail smtp 주소
self.gmail_port = 465 # gmail smtp 포트번호. 고정(변경 불가)
# 로그인
self.my_account = sender
self.my_password = passwd
self.receiver = receiver
def send_email(self, msg):
try:
smtp = smtplib.SMTP_SSL(self.gmail_smtp, self.gmail_port)
smtp.login(self.my_account, self.my_password)
# 메일 기본 정보 설정
message = MIMEMultipart("alternative")
message["Subject"] = '기차표 예매 프로그램 알림 이메일'
message["From"] = self.my_account
message["To"] = self.receiver
message.attach(MIMEText(msg, "plain"))
smtp.sendmail(self.my_account, self.receiver, message.as_string())
# smtp 서버 연결 해제
smtp.quit()
self.try_callback(msg)
return True
except Exception as e:
self.error_callback('이메일 발송 실패', f"{msg} \n발송에 실패했습니다 - \n{e}")
return False
[참고 사이트]
Python으로 Gmail 보내기
나름의 이유로 시스템에서 메일을 보내야할 일이 있는데, 이왕이면 Gmail을 이용해보고 싶어서 살펴보기로 했다. 일단 Gmail을 통해 이메일을 보내기 위해서 미리 셋팅을 해줘야 할 것이 있다. Gmail
www.whatwant.com
테스트 결과 이메일이 잘 도착한다 :)
