Programming/Python

[업무 자동화] 파이썬 코드로 메일 전송하는 방법 - 코드로 메일 전송하기

사족보행 개발자 2024. 11. 3. 23:27
728x90

파이썬을 이용해 이메일을 보내는 방법은 두 가지 주요 방법이 있다. 하나는 파이썬의 표준 라이브러리인 smtplib를 사용하는 것이고, 다른 하나는 yagmail과 같은 서드파티 라이브러리를 사용하는 것이다. 여기서는 두 방법 모두를 간단히 설명한다.

 

본 글에서는 메일을 네이버 계정을 통해 보내는 것을 가정으로 작성한다.

(구글 계정으로도 쉽게 할 수 있다.)

0. SMTP 정보 불러오기

네이버에서 SMTP 정보를 불러오는 방법은 간단하다.

일단. 네이버 로그인을 한 뒤, 메일로 들어간다.

 

1. 메일 화면

메일로 들어가서, 우측 사이드바에 존재하는 환경설정 버튼을 클릭한다.

환경설정을 들어가면 아래와 같은 화면이 나오게 된다.

 

2. 메일 - 환경설정

그러면 그림과 같이 순서에 맞게 POP3/IMAP 버튼을 누르고 IMAP/SMTP 설정을 들어가서 사용함을 클릭하고 저장한다.

 

3. 사용함 후 저장

사용함을 누르게되면 위와 같은 화면이 나오게 될 것이다.

 

그리고 아래로 스크롤 바를 내리면 하단 이미지와 같은 정보가 나타나게 되는데, 노란색으로 체크되어 있는 부분의 정보를 기억하면 된다.

 

4. SMTP 정보

 

아이디와 SMTP 서버, SMTP 포트만 저장하고 넘어가자.

비밀번호는 2차 잠금을 설정했다면 새로운 어플리케이션을 만들어서 다시 설정해주어야 한다.

 

비밀번호 설정은 간단하다. 

 

1. 비밀번호 설정

 우측 상단의 프로필을 누르고 보안설정 버튼을 클릭한다.

 

 

그러면 위와 같이 2단계 인증에 관리버튼이 있을 텐데, 관리버튼을 눌러주면 된다.

 

 

들어가서 위와 같이 애플리케이션 비밀번호를 설정해주면 되는데,

직접 입력으로 파이썬을 넣고 생성하기 버튼을 눌러주면 된다.

그렇게 되면 비밀번호 확인에 자신의 비밀번호가 뜨게 될 것이다.

 

해당 비밀번호를 저장해두었다가 파이썬 코드에 비밀번호를 적는 부분에 넣어주면 된다.

 

위와 같이 이력을 확인할 수 있다.

 

 

 

1. smtplib를 사용한 이메일 전송

smtplib는 파이썬의 표준 라이브러리로, SMTP(Simple Mail Transfer Protocol)를 통해 메일을 보낼 수 있게 한다.

기본적인 사용법은 다음과 같다.

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

# SMTP 서버 설정
smtp_server = 'smtp.example.com'
smtp_port = 587
username = 'your_email@example.com'
password = 'your_password'

# 이메일 내용 구성
msg = MIMEMultipart()
msg['From'] = username
msg['To'] = 'recipient@example.com'
msg['Subject'] = '테스트 메일'
body = '이것은 테스트 메일입니다.'
msg.attach(MIMEText(body, 'plain'))

# 이메일 전송
try:
    server = smtplib.SMTP(smtp_server, smtp_port)
    server.starttls()
    server.login(username, password)
    server.sendmail(username, 'recipient@example.com', msg.as_string())
    print("메일이 성공적으로 전송되었습니다.")
finally:
    server.quit()
  • smtplib.SMTP()는 SMTP 서버와 연결한다.
  • server.starttls()는 보안 연결을 설정한다.
  • server.login()으로 SMTP 서버에 로그인한 후 sendmail()로 메일을 전송한다.

2. yagmail을 사용한 이메일 전송

yagmail은 더 간단하게 이메일을 보낼 수 있게 해주는 라이브러리다. 설치는 다음과 같이 한다.

pip install yagmail

yagmail을 사용한 이메일 전송 코드 예시는 다음과 같다.

import yagmail

# yagmail 인스턴스 생성
yag = yagmail.SMTP('your_email@example.com', 'your_password')

# 이메일 전송
yag.send(
    to='recipient@example.com',
    subject='테스트 메일',
    contents='이것은 yagmail로 보낸 테스트 메일입니다.'
)
print("메일이 성공적으로 전송되었습니다.")
  • yagmail.SMTP()는 SMTP 인스턴스를 생성한다.
  • send() 메서드를 이용해 수신자 주소, 제목, 본문을 지정하고 메일을 보낸다.

3. smtplib와 yagmail의 차이 및 장단점 비교

라이브러리 장점 단점
smtplib - 표준 라이브러리로 추가 설치 불필요 - 코드가 길고 복잡할 수 있음
  - 높은 유연성과 다양한 옵션 제공 - SMTP 서버 설정이 다소 번거로움
yagmail - 간단한 설치 및 사용 - 서드파티 라이브러리이므로 추가 설치 필요
  - 코드가 간결하고 직관적 - 일부 기능에서 제한적일 수 있음

결론

smtplib는 표준 라이브러리로 많은 유연성을 제공하지만 코드가 길어질 수 있다. 반면 yagmail은 설정과 사용이 간단해 더 빠르게 메일을 보낼 수 있다. 필요에 따라 두 방법 중 적절한 것을 선택해 사용하면 된다.

728x90