Python에서 이메일을 보내기 위해서는 smtplib
모듈을 사용하면 됩니다. 이 모듈은 SMTP (Simple Mail Transfer Protocol)를 통해 이메일을 보낼 수 있는 기능을 제공합니다. 아래는 Gmail SMTP 서버를 사용하여 이메일을 보내는 예제 코드입니다.
import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText # 이메일 보내기 함수 def send_email(sender_email, receiver_email, subject, body, smtp_server, smtp_port, sender_password): # MIMEMultipart 객체 생성 msg = MIMEMultipart() msg['From'] = sender_email msg['To'] = receiver_email msg['Subject'] = subject # 이메일 본문 추가 msg.attach(MIMEText(body, 'plain')) try: # SMTP 서버에 연결 server = smtplib.SMTP(smtp_server, smtp_port) server.starttls() # TLS(Transport Layer Security) 시작 server.login(sender_email, sender_password) # 로그인 # 이메일 전송 server.send_message(msg) print("Email sent successfully!") except Exception as e: print(f"Failed to send email: {e}") finally: server.quit() # 서버 연결 종료 # 메인 실행 로직 if __name__ == "__main__": sender_email = "your_email@gmail.com" # 발신자 이메일 주소 receiver_email = "receiver_email@example.com" # 수신자 이메일 주소 subject = "Test Email from Python" # 이메일 제목 body = "This is a test email sent from a Python script." # 이메일 본문 # Gmail SMTP 서버 설정 smtp_server = "smtp.gmail.com" smtp_port = 587 # TLS 포트 번호 # 발신자 이메일 계정 비밀번호 (또는 앱 비밀번호) sender_password = "your_password" # 이메일 전송 함수 호출 send_email(sender_email, receiver_email, subject, body, smtp_server, smtp_port, sender_password)
주요 구성 요소 설명:
- smtplib: 이메일을 보내기 위해 사용되는 Python 모듈입니다. SMTP 서버에 연결하여 이메일을 전송할 수 있습니다.
- email.mime.multipart.MIMEMultipart: 멀티파트 이메일 메시지를 구성하는 객체입니다. 이메일의 다양한 부분 (예: 본문, 첨부 파일)을 조합할 수 있습니다.
- email.mime.text.MIMEText: 이메일 본문을 텍스트로 작성하기 위해 사용됩니다.
코드 실행 방법:
-
발신자 이메일 계정 정보 입력:
sender_email
: 발신자의 이메일 주소.sender_password
: 발신자 이메일 계정의 비밀번호 또는 앱 비밀번호(Gmail의 경우 앱 비밀번호를 사용하는 것을 권장).
-
수신자 이메일 주소 입력:
receiver_email
변수에 수신자의 이메일 주소를 입력합니다. -
이메일 서버 정보 설정:
smtp_server
: 이메일을 보낼 SMTP 서버 주소(Gmail의 경우smtp.gmail.com
).smtp_port
: SMTP 서버 포트 번호(Gmail의 경우587
).
-
코드 실행: 이 코드를 실행하면 지정된 이메일 주소로 메일이 전송됩니다.
참고:
- Gmail을 사용하려면 "보안 수준이 낮은 앱의 액세스"를 허용하거나, 2단계 인증을 설정한 후 앱 비밀번호를 생성하여
sender_password
에 사용해야 합니다. - 회사나 다른 이메일 제공자를 사용하는 경우 해당 SMTP 서버 및 포트를 확인해야 합니다.