QR코드를 활용한 이메일 메시지 전송 프로그램 만들기



QR코드를 활용한 이메일 메시지 전송 프로그램 만들기

이번 글에서는 QR코드를 이메일로 보내는 프로그램을 만드는 방법에 대해 설명합니다. 이 프로그램은 사용자에게 감사를 전하거나 비밀 메시지를 전달하는 데 유용합니다. 최종 프로그램을 통해 사용자가 입력한 메시지를 QR코드로 변환하여 이메일에 첨부해 발송하는 과정을 다룹니다.

 

👉 ✅ 상세 정보 바로 확인 👈

 

프로그램 실행 화면 소개

프로그램을 실행하면 사용자에게 이메일 주소, 제목, 내용 및 QR코드 메시지를 입력할 수 있는 GUI가 제공됩니다. 사용자가 정보를 입력하고 ‘전송’ 버튼을 클릭하면, 입력한 이메일 주소로 메시지가 성공적으로 전송되었다는 확인 메시지가 화면에 나타납니다. 받는 사람의 이메일에서는 QR코드 이미지가 첨부된 이메일을 확인할 수 있습니다. 이 QR코드를 스캔하면 숨겨진 메시지를 확인할 수 있어 기분이 뭉클해질 수도 있습니다.



 

👉 ✅ 상세 정보 바로 확인 👈

 

프로그램 실행 준비 사항

프로그램을 원활하게 실행하기 위해서는 몇 가지 준비가 필요합니다. 아래의 모듈들을 먼저 설치해야 하며, 이를 통해 QR코드 생성과 이메일 전송 기능을 구현할 수 있습니다.

필요한 모듈 목록

모듈 설치 방법
QR코드 관련 pip install qrcode
GUI 관련 PyQt5 설치
이메일 발송 관련 기본 파이썬 라이브러리 사용

또한, 이메일을 발송하기 위해서는 네이버 메일의 환경설정에서 IMAP/SMTP 설정을 활성화해야 합니다. 이 작업이 완료되면 프로그램을 실행할 준비가 끝납니다.

프로그램 소스 코드

아래는 QR코드를 생성하고 이메일로 전송하는 기능을 구현한 프로그램의 소스 코드입니다.

“`python

– coding: utf-8 –

import qrcode
import sys
from PyQt5.QtWidgets import *
from PyQt5 import uic
import os
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.utils import formatdate

form_class = uic.loadUiType(“QRCode.ui”)[0]

class MyWindow(QMainWindow, form_class):
def init(self):
super().init()
self.setFixedSize(570, 582)
self.setupUi(self)
self.pushButton.clicked.connect(self.transfer)
self.toolButton_3.clicked.connect(self.emailSelectFile)

def transfer(self):
    emailList = self.lineEdit_2.text()
    emailTitle = self.lineEdit.text()
    emailContent = self.textEdit_2.toPlainText()
    QRmessages = self.textEdit_3.toPlainText()

    if emailTitle and emailList and emailContent and QRmessages:
        imgFile = "hello.png"
        if os.path.exists(imgFile):
            os.remove(imgFile)

        img = qrcode.make(QRmessages)
        img.save(imgFile)

        msg = MIMEMultipart()
        msg['From'] = ''  # 본인 이메일 주소
        msg['To'] = emailList
        msg['Date'] = formatdate(localtime=True)
        msg['Subject'] = emailTitle
        msg.attach(MIMEText(emailContent, _charset='utf-8'))

        with open(imgFile, "rb") as f:
            msg.attach(MIMEText(f.read(), 'application/octet-stream'))

        with smtplib.SMTP_SSL('smtp.naver.com') as mailServer:
            mailServer.login('', '')  # 본인 계정과 비밀번호
            mailServer.send_message(msg)

        self.textEdit.setText("입력하신 이메일 주소로 잘 전송되었습니다.")
        self.lineEdit_2.clear()
        self.lineEdit.clear()
        self.textEdit_2.clear()
        self.textEdit_3.clear()
    else:
        self.textEdit.setText("이메일 주소/제목/내용 및 QR메시지를 모두 입력하셔야 합니다.")

def emailSelectFile(self):
    file = QFileDialog.getOpenFileName(self, 'Open file', './')
    if file[0]:
        with open(file[0], encoding='utf-8') as f:
            keywords = f.read()
            self.lineEdit_2.setText(keywords)

app = QApplication(sys.argv)
window = MyWindow()
window.show()
app.exec_()
“`

프로그램 실행 방법

위의 소스코드를 3.py로 저장한 후, 명령 프롬프트나 터미널에서 다음과 같은 명령어로 실행합니다. 이때, UI 파일인 QRCode.ui3.py와 같은 디렉토리에 위치해야 합니다.

python 3.py

주요 기능 및 소스 분석

이 프로그램의 핵심 기능은 QR코드를 생성하고 이를 이메일에 첨부하여 발송하는 것입니다. 사용자가 입력한 데이터는 전부 변수에 저장되며, 이를 통해 이메일 전송이 이루어집니다. QR코드 생성은 qrcode 라이브러리를 통해 이루어지며, 생성된 이미지는 이메일에 첨부됩니다.

이메일 발송 과정에서 발생할 수 있는 오류를 처리하는 기능은 추가적으로 필요합니다. 만약 잘못된 이메일 주소를 입력하면 사용자에게 오류 메시지를 제공하여 수정할 수 있도록 해야 합니다. 또한, 프로그램이 종료되지 않고 오류 내용을 사용자에게 알려주는 것이 중요합니다.

향후 개선 사항

이 프로그램은 기본적인 기능은 구현되었으나, 다음과 같은 개선이 필요합니다.

  1. 이메일 유효성 검증: 현재는 입력된 이메일 주소의 유효성을 검증하지 않으므로, 잘못된 이메일 주소로 발송되는 경우 오류 메시지가 발생할 수 있습니다.
  2. 오류 메시지 제공: 이메일 발송 시 오류가 발생하면 사용자에게 해당 오류 내용을 제공하여 문제를 해결할 수 있도록 해야 합니다.
  3. 문자 메시지 전송 기능: 이메일 외에 문자 메시지로도 발송할 수 있는 기능을 추가하면 프로그램의 활용도가 높아집니다.

이와 같은 개선을 통해 프로그램의 신뢰성과 사용자 편의성을 높일 수 있습니다.

프로그램을 통해 QR코드를 활용한 메시지 전송의 재미를 느껴보시기 바랍니다. 지속적으로 발전하는 자신을 위해 작은 도전부터 시작해보세요.