Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python 이메일 보내기:가이드

Python을 사용하여 이메일을 보내는 방법

파이썬은 많은 기능을 가진 언어입니다. 데이터 분석, 웹 개발 등에 사용할 수 있습니다. 그게 다가 아닙니다. Python에는 숨겨진 기능이 있습니다. 이 기능을 사용하여 이메일을 보낼 수 있습니다. 즉, Python 프로그램에서 비밀번호 재설정 이메일을 보내거나 비밀번호를 잊어버린 이메일, 사용자 알림 및 기타 보내고 싶은 이메일을 보낼 수 있습니다.

이 가이드에서는 Python을 사용하여 이메일을 보내는 방법에 대해 설명합니다. 이메일과 smtplib 라이브러리, 작동 방식을 살펴보고 이메일을 보내는 예제 프로그램을 작성해 보겠습니다.

더 이상 고민하지 말고 시작하겠습니다!

Python을 사용하여 이메일 보내기

컴퓨터 프로그램에서 이메일을 보낼 때 프로그램은 SMTP(Simple Mail Transfer Protocol)라는 프로토콜을 사용하여 메시지를 보냅니다. 이 프로토콜은 전 세계의 이메일 서비스와 클라이언트가 메시지를 보내는 데 사용합니다.

컴퓨터 프로그램에서 이메일을 보내려면 SMTP 서버가 있어야 합니다. 직접 설정할 수 있지만 항상 이렇게 할 필요는 없습니다. Gmail 및 Outlook과 같은 서비스는 SMTP 서비스를 제공하므로 기존 이메일 계정을 사용하여 이메일을 보낼 수 있습니다.

이 가이드에서는 Gmail의 SMTP 서버에서 이메일을 보내는 것으로 가정합니다. Gmail 공식 문서에서 SMTP 서버에 대해 자세히 알아볼 수 있습니다. 이메일 제공업체가 SMTP를 지원하는지 알아보려면 온라인에서 '[제공업체 이름] SMTP 자격 증명'을 검색하세요.

이메일을 보내기 위해 따라야 할 세 단계가 있습니다.

  • SMTP 연결 구성
  • 메시지 개체 만들기
  • SMTP를 통해 메시지 보내기

SMTP 연결 구성

시작하려면 SMTP 연결을 설정해 보겠습니다. 연결을 관리하는 데 필요한 모든 코드를 제공하는 smtplib라는 라이브러리를 사용하여 이 작업을 수행할 수 있습니다. 이 라이브러리 덕분에 이메일을 보내는 데 몇 줄의 코드만 있으면 됩니다.

참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.

부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.

smtplib 라이브러리를 코드로 가져와 시작합니다.

import smtplib

이제 SMTP 서버의 자격 증명을 저장하는 변수를 설정해야 합니다. 이러한 값을 변수에 저장하면 코드의 가독성을 유지하는 데 도움이 됩니다. 사용할 변수는 다음과 같습니다.

sender = '[email protected]'
password = '123456'
server = 'smtp.gmail.com'
port = 465

이 코드에는 SMTP 연결을 만드는 데 필요한 모든 구성이 포함되어 있습니다. 이제 이 설정이 완료되었으므로 SMTP 서버에 로그인할 수 있습니다.

server = smtplib.SMTP_SSL(server, port)
server.login(sender, password)

우리 코드는 SMTP 서버에 대한 SSL 연결을 생성합니다. 즉, SSL(Secure Socket Layer)을 사용하여 서버에 연결합니다. SSL은 기존 연결보다 더 안전하므로 SMTP 서버의 표준이 되었습니다.

이제 SMTP 연결이 구성되었습니다!

메시지 개체 만들기

우리 코드는 지금 그다지 많은 일을 하지 않습니다:확실히 이메일을 보내지 않습니다. 아직 메시지 객체를 생성하지 않았기 때문입니다. 이메일 라이브러리를 사용하여 이 작업을 수행해 보겠습니다. smtplib를 사용하여 메시지 개체를 만들 수 있지만 전자 메일 라이브러리는 더 간결합니다.

필요한 이메일 패키지를 가져오는 것부터 시작하겠습니다.

from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

이러한 라이브러리를 가져오면 메시지 개체를 만들 수 있습니다.

message = MIMEMultipart()

body = 'This is an email sent from Python!'

message['From'] = sender
message['To'] = '[email protected]'
message['Subject'] = 'This is a test email'

message.attach(MIMEText(body, 'plain'))

우리는 'message'라는 객체를 초기화하는 것으로 시작했습니다. 이 객체는 이메일 라이브러리의 MIMEMultipart 클래스를 참조합니다. 그런 다음 이메일 본문과 보낸 사람, 받는 사람 및 제목을 지정했습니다.

코드의 마지막 줄은 메시지 본문을 이메일에 첨부합니다.

메시지 보내기

이제 메시지를 보내는 일만 남았습니다.

server.send_message(message)

모든 코드를 함께 실행하면 이메일이 전송됩니다! '테스트 이메일입니다'라는 제목의 이메일이 [email protected]에서 [email protected]으로 발송됩니다.

파일에서 템플릿 읽기

이메일 본문은 단 한 줄입니다. 이것은 우리가 이메일 본문을 Python 내에서 작성하는 것이 더 실용적이라는 것을 의미합니다. 대부분의 이메일은 이보다 길기 때문에 특정 이메일의 텍스트를 저장하는 템플릿을 만드는 것이 좋습니다.

먼저 email.txt라는 파일을 만들고 다음 내용을 붙여넣습니다.

Hello ${NAME},

This is a test email!

Thanks,
Career Karma

이 템플릿에는 중괄호({})로 묶이고 앞에 달러 기호($)가 오는 "NAME"이라는 변수가 포함되어 있습니다. 이 변수는 나중에 코드에서 받는 사람의 이름으로 대체됩니다.

이제 이 템플릿을 코드로 읽어들여야 합니다. open() 메서드를 사용하여 파일을 읽는 read_email이라는 클래스를 만들어 이를 수행할 수 있습니다.

문자열 라이브러리에서 템플릿 개체를 가져옵니다. 우리는 이 객체를 사용하여 이메일로 읽을 수 있는 객체를 만들 것입니다. Python 프로그램 상단에 다음 코드 줄을 붙여넣습니다.

from string import Template

모든 가져오기 문 아래에 다음 코드를 붙여넣습니다.

def read_email():
	with open('email.txt', 'r') as file:
		contents = file.read()
	return Template(contents)

이 함수는 "email.txt"라는 파일을 "contents" 변수로 읽어들입니다. 그 값은 "문자열" 라이브러리의 템플릿 메서드를 사용하여 템플릿 개체로 변환됩니다. Python 파일 읽기 자습서에서 파일 읽기에 대해 자세히 알아볼 수 있습니다.

프로그램에서 다음 코드 줄을 변경하십시오.

body = 'This is an email sent from Python!'

이 코드를 사용하려면:

email_content = read_email()
body = email_content.substitute(NAME="Test")

이 코드는 read_email() "email.txt" 파일의 내용을 읽는 코드의 함수입니다. 그런 다음 이메일 템플릿 내의 NAME 값이 "Test" 값으로 대체됩니다. 코드는 다음과 같습니다.

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from string import Template

def read_email():
	with open('email.txt', 'r') as file:
		contents = file.read()
	return Template(contents)

sender = '[email protected]'
password = '123456"
server = 'smtp.gmail.com'
port = 465

server = smtplib.SMTP_SSL(server, port)
server.login(sender, password)

message = MIMEMultipart()

email_content = read_email()
body = email_content.substitute(NAME="Test")

message['From'] = sender
message['To'] = '[email protected]'
message['Subject'] = 'This is a test email'

message.attach(MIMEText(body, 'plain'))

이 프로그램을 실행하면 SMTP 서버 자격 증명으로 대체하여 이메일이 전송됩니다. 이메일을 보내는 프로그램을 작성했습니다.

결론

Python으로 이메일을 보내는 것은 어렵지 않습니다. 템플릿을 사용하지 않고 이메일을 보내는 데 몇 줄의 코드만 있으면 됩니다. email 및 smtplib 모듈은 대부분의 무거운 작업을 수행합니다. 즉, 이메일 모듈을 보다 광범위하게 사용하여 값을 대체할 수 있는 이메일 템플릿을 생성할 수 있습니다.

도전할 준비가 되었나요? 여러 수신자에게 이메일을 보낼 수 있도록 위의 프로그램을 변경하십시오. 힌트:이러한 이메일을 보내기 위해 for 루프를 사용하고 싶을 것입니다.

이제 전문가처럼 Python으로 이메일을 보낼 준비가 되었습니다!