이제 이메일을 보내보자.
모든 이메일 서버를 지원하기에는 공수가 많이 들어가니 가장 많이 사용하는 gmail로 발신 서버를 제한한다.
python에서 gmail을 보내려면 사전 세팅이 좀 필요한데, 아래 블로그를 참고하여 준비하자.
콜백 함수까지 포함해서 코드를 완성하면 아래와 같다.
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
[참고 사이트]
테스트 결과 이메일이 잘 도착한다 :)
'프로젝트 > SRT&KTX 매진표 예매' 카테고리의 다른 글
SRT&KTX 기차표 매크로 예매 - (14) 텔레그램, 이메일 환경설정 UI (0) | 2024.01.17 |
---|---|
SRT&KTX 기차표 매크로 예매 - (12) 예매시 텔레그램 알림 보내기(python-telegram-bot) (0) | 2024.01.17 |
SRT&KTX 기차표 매크로 예매 - (11) KTX 승차권 예매 (0) | 2024.01.16 |
SRT&KTX 기차표 매크로 예매 - (10) KTX 승차권 조회 (0) | 2024.01.15 |
SRT&KTX 기차표 매크로 예매 - (9) KTX 역 리스트 조회 (0) | 2024.01.15 |