[python] SQLAlchemy-Utils를 사용하여 데이터베이스에서 이메일 발송하기
이메일 메시지를 전송하는 작업은 대부분 데이터베이스와 연관되어 있습니다. SQLAlchemy-Utils는 SQLAlchemy의 부가 기능을 제공하여 데이터베이스에서 작업을 쉽게 수행할 수 있도록 도와줍니다. 이 기능은 데이터베이스에 저장된 이메일 주소를 사용하여 이메일을 전송하는 데 특히 유용합니다.
이번 포스트에서는 SQLAlchemy-Utils를 사용하여 데이터베이스에서 이메일을 발송하는 방법에 대해 살펴보겠습니다.
필수 패키지 설치
먼저 다음과 같이 SQLAlchemy-Utils를 설치합니다.
pip install sqlalchemy-utils
데이터베이스 모델 생성
이메일 주소를 저장할 수 있는 Email
데이터베이스 모델을 정의합니다.
from sqlalchemy_utils import EmailType
from sqlalchemy import Column, Integer, create_engine
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class Email(Base):
__tablename__ = 'emails'
id = Column(Integer, primary_key=True)
address = Column(EmailType)
데이터베이스에 이메일 주소 저장
이제 데이터베이스에 이메일 주소를 저장합니다. SQLAlchemy를 사용하여 새 이메일 주소를 만들고 데이터베이스에 추가할 수 있습니다.
from sqlalchemy.orm import sessionmaker
# 데이터베이스 엔진 생성
engine = create_engine('sqlite:///emails.db')
# 테이블 생성
Base.metadata.create_all(engine)
# SQLAlchemy 세션 생성
Session = sessionmaker(bind=engine)
session = Session()
# 새 이메일 주소 추가
new_email = Email(address='example@example.com')
session.add(new_email)
session.commit()
이메일 발송
이제 데이터베이스에 저장된 이메일 주소를 사용하여 이메일을 발송할 수 있습니다.
import smtplib
from email.message import EmailMessage
# 데이터베이스에서 이메일 주소 가져오기
email = session.query(Email).filter_by(address='example@example.com').first()
# 이메일 전송
msg = EmailMessage()
msg.set_content('이것은 테스트 이메일입니다.')
msg['Subject'] = '테스트 이메일'
msg['From'] = 'sender@example.com'
msg['To'] = email.address
server = smtplib.SMTP('smtp.example.com')
server.send_message(msg)
server.quit()
결론
이번 포스트에서는 SQLAlchemy-Utils를 사용하여 데이터베이스에서 이메일을 발송하는 방법에 대해 살펴보았습니다. SQLAlchemy-Utils를 사용하면 데이터베이스와 이메일 전송을 효율적으로 연동하여 작업할 수 있습니다. SQLAlchemy-Utils의 다양한 기능을 활용하여 더 많은 작업을 다루어 보시기 바랍니다.
더 자세한 내용은 SQLAlchemy-Utils 문서를 참고하시기 바랍니다.