[python] 웹 서버에 이메일 발송 기능 추가하기
이번에는 Python을 사용하여 간단한 웹 서버에 이메일 발송 기능을 추가하는 방법에 대해 알아보겠습니다. 이메일 발송 기능은 사용자가 웹 페이지를 통해 양식을 작성하고 제출할 때, 서버에서 해당 이메일을 받아와 이메일로 전송하는 것을 의미합니다. 이 기능을 추가하여 웹 서버와 사용자 간에 실시간으로 이메일을 주고받을 수 있습니다.
필요한 패키지 설치
먼저, 이메일 발송 기능을 구현하기 위해 필요한 패키지를 설치해야 합니다. 파이썬에서는 smtplib
와 email
라이브러리를 사용하여 이메일을 발송할 수 있습니다. 아래의 명령어를 사용하여 패키지를 설치해주세요.
pip install smtplib
pip install email
이메일 발송 구현
-
패키지 import하기
import smtplib from email.mime.text import MIMEText
-
함수 작성하기
def send_email(sender, receiver, subject, message): # 이메일 보내기 msg = MIMEText(message) msg['Subject'] = subject msg['From'] = sender msg['To'] = receiver try: smtp = smtplib.SMTP('smtp.gmail.com', 587) smtp.starttls() smtp.login(sender, 'password') smtp.sendmail(sender, receiver, msg.as_string()) smtp.quit() return True except: return False
웹 서버와 연동하기
이제 이메일 발송 기능을 웹 서버와 연동해보겠습니다. Flask라는 웹 프레임워크를 사용하여 간단한 웹 애플리케이션을 만들어보도록 하겠습니다.
-
Flask 설치하기
pip install flask
-
Flask 애플리케이션 생성하기
from flask import Flask, render_template, request app = Flask(__name__)
-
이메일 발송 기능 추가하기
@app.route('/send_email', methods=['POST']) def send_email_route(): sender = request.form['sender'] receiver = request.form['receiver'] subject = request.form['subject'] message = request.form['message'] result = send_email(sender, receiver, subject, message) return render_template('result.html', result=result)
-
웹 페이지 구현하기
<!DOCTYPE html> <html> <head> <title>Email Form</title> </head> <body> <form action="/send_email" method="POST"> <input type="email" name="sender" placeholder="Sender Email" required><br> <input type="email" name="receiver" placeholder="Receiver Email" required><br> <input type="text" name="subject" placeholder="Subject" required><br> <textarea name="message" placeholder="Message" required></textarea><br> <input type="submit" value="Send Email"> </form> </body> </html>
-
결과 페이지 구현하기
<!DOCTYPE html> <html> <head> <title>Email Result</title> </head> <body> {% if result %} <h1>Email sent successfully!</h1> {% else %} <h1>Failed to send email.</h1> {% endif %} </body> </html>
-
애플리케이션 실행하기
if __name__ == '__main__': app.run()
이제 웹 서버를 실행하고, 웹 브라우저로 접속하여 이메일을 발송해볼 수 있습니다. 사용자가 입력한 이메일 정보가 서버로 전송되고, 서버에서 해당 이메일을 받아와 이메일로 전송합니다. 전송 결과에 대한 화면을 보여주어 사용자에게 알립니다.
이처럼 Python을 사용하여 웹 서버에 이메일 발송 기능을 추가할 수 있습니다. 이를 응용하여 다양한 기능을 구현할 수 있으며, 파이썬과 Flask 웹 프레임워크의 다양한 기능을 활용하여 웹 애플리케이션을 개발할 수 있습니다.