본문 바로가기
Programming

[업무효율화] 단체 메일 발송하기

by 느리게 걷는 즐거움 2024. 4. 3.
반응형

Python을 이용해서 단체메일을 손쉽게 발송할 수 있는 방법을 정리합니다. 주기적으로 발송하는 이메일은 대부분 정해진 포멧이 있는 경우가 많습니다.

이 경우 변경되는 정보만 함수에 전달해서 메일을 발송하면 편리하게 업무 효율화를 할 수 있습니다. 

Gmail 환경 설정

Gmail을 이용해서 메일을 발송하기 위해서 설정이 필요합니다. Gmail의 우측 상단의 [톱니바퀴] > [모든 설정 보기] 를 선택합니다.

설정으로 들어오면 상단 메뉴에 [전달 및 POP/IMAP]을 선택합니다.

메뉴에 들어와서 [IMAP 사용]을 선택합니다.

자신의 Gmail 계정 아이콘을 선택해서 [Google 계정 관리]로 들어갑니다.

계정설정에 들어와서 왼쪽의 보안 메뉴를 선택합니다.

메일 발송을 위한 프로그램을 등록하고 password를 설정하기 위해서 [2단계 인증]을 선택합니다. 메뉴 아래쪽에 있습니다.

이제 앱 비밀번호를 선택해서 Gmail을 발송하는 앱의 이름을 설정하세요, "Python_Gmail_Sender"라고 설정해보겠습니다.

앱을 생성하면 생성된 앱 비밀번호 화면이 나오면서 영문자가 생성됩니다. 이메일을 발송하는 프로그램의 암호로 사용됩니다. 적어두세요.

 

개발환경

개발환경은 collab을 사용합니다. collab을 사용하지 않는 경우 로컬 개발환경에서 파이썬 설치가 필요합니다.

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

def send_email(subject, message, from_email, to_email, gmail_password): 
    subject=f"[{date.today()}] "+subject

    msg = MIMEMultipart()
    msg['From'] = from_email
    msg['To'] = to_email
    msg['Subject'] = subject

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

    try:
        server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
        server.ehlo()
        server.login(from_email, gmail_password)
        server.sendmail(from_email, to_email, msg.as_string())
        server.close()
        print("이메일이 성공적으로 발송되었습니다.")
    except Exception as e:
        print("이메일 발송 중 오류가 발생했습니다:", str(e))

위의 함수를 collab에 생성 및 실행합니다. 함수의 이름은 [send_email]이며 gmail 서버를 이용해서 메일을 발송합니다.

메일발송

전달할 메일의 제목, 본문, 발신자, 수신자 정보를 업데이트 하고 함수를 호출합니다.

subject = "일일 알리미 메일"
message = """
오늘 전달한 내용은 아래와 같습니다.
"""
from_email = "내이메일@gmail.com"        # 발신자 Gmail 주소
to_emails = ["수신자이메일1@gmail.com", "수신자이메일2@gmail.com"]       # 수신자 Gmail 주소
gmail_password = "??????????"           # 발신자 Gmail 비밀번호

# 이메일 발송
for to_email in to_emails:
  print(f"[{to_email}] 로 메일을 발송합니다.")
  send_email(subject, message, from_email, to_email, gmail_password)

제목은 subject, 본문은 message에 입력하고 발신자는 from_email, 수신자는 to_emails에 여러 명의 수신자를 차례대로 입력합니다.

gmail_password는 위에서 확인한 앱 비밀번호를 사용합니다. 이제 위의 send_email()함수를 호출하면 자신이 정의한 메일이 gmail로 발송되는 것을 확인할 수 있습니다.

 실행결과

[test@gmail.com] 로 메일을 발송합니다.
이메일이 성공적으로 발송되었습니다.

반응형

'Programming' 카테고리의 다른 글

검색에 잘 노출되는 방법 (sitemap)  (0) 2024.04.08
Python에서 Json파일 읽기  (0) 2024.04.04
Python Try구문과 exception종류  (0) 2024.04.02
노코드(Nocode)란 무엇인가?  (0) 2024.03.26
검색엔진 등록방법  (0) 2024.03.25