Python으로 이메일을 보냅니다

Najwa Riyaz 2022년4월14일
Python으로 이메일을 보냅니다

Python을 사용하여 이메일을 보내려면smtplib라이브러리에서 다음 함수를 사용하십시오.

  • SMTP(SMTP_SERVER, SMTP_PORT) - SMTP 서버 및 SMTP 포트 세부 사항에 따라 SMTP 세션을 생성합니다.
  • starttls() - 보안 설정을 위해 TLS를 시작합니다.
  • login(SMTP_USERNAME, SMTP_PASSWORD) - 이메일 발신자의 인증 세부 정보를 제공합니다.
  • sendmail(EMAIL_FROM, EMAIL_TO, the_message) - 발신자로부터 수신자에게 메시지를 보냅니다.
  • quit()는 SMTP 세션을 종료합니다.

다음은 Gmail SMTP 서버를 통한 메일 전송을 보여주는 예입니다.

import smtplib

SMTP_SERVER = "smtp.gmail.com"
SMTP_PORT = 587
SMTP_USERNAME = "sender_username_here@gmail.com"
SMTP_PASSWORD = "sender_password_here"
EMAIL_FROM = "sender_username_here@gmail.com"
EMAIL_TO = "receiver_username_here@gmail.com"
EMAIL_SUBJECT = "Attention:Subject here"
EMAIL_MESSAGE = "The message here"

s = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
s.starttls()
s.login(SMTP_USERNAME, SMTP_PASSWORD)
message = "Subject: {}\n\n{}".format(EMAIL_SUBJECT, EMAIL_MESSAGE)
s.sendmail(EMAIL_FROM, EMAIL_TO, message)
s.quit()

출력은 시스템의 해당 지점에서 구축 된 연결에 따라 다음과 같이 보일 수 있습니다.

(221, b"2.0.0 closing connection t12sm4676768pfc.133 - gsmtp")

결과적으로 이메일이 전송됩니다. 수신자는 메시지를 성공적으로 수신합니다.

노트 :

  • Gmail의 경우 다음 SMTP 세부 정보를 입력하세요.
SMTP_SERVER = "smtp.gmail.com"
SMTP_PORT = 587

또한 코드를 실행하기 전에 Gmail에서 다음 설정을 활성화해야합니다.

https://myaccount.google.com/lesssecureapps
  • 야후 메일의 경우 다음과 같은 SMTP 정보를 제공합니다.
SMTP_SERVER = "smtp.mail.yahoo.com"
SMTP_PORT = 587

또한 코드를 실행하기 전에 Yahoo App Password를 생성하십시오. 아래 링크를 확인하십시오.

https://help.yahoo.com/kb/generate-separate-password-sln15241.html

  • 마찬가지로, 다른 메일 공급자를 사용하려면 해당 SMTP 서버 세부 정보 및 전제 조건을 사용하십시오.