' + re_word; if(data.autoList[i].PROD_NAME != ''){ html += ' '+data.autoList[i].PROD_NAME+''; } html += '
' html += '' + comma(Math.floor(data.autoList[i].PROD_PRICES)) + ' 원'; html += '' + re_word + '
'; html += '' + comma(Math.floor(data.resultList[i].prod_priceS)) + ' 원'; html += ''+data.catgStep1List[i].split('@@')[1]+'
'; html += '
안녕하세요, 나도메이커입니다!
대학교 연구실이나 기업의 R&D 센터, 그리고 스마트 팩토리 환경에서 프로젝트를 진행하다 보면 반복적인 데이터 보고와 알림 발송 업무에 많은 시간을 빼앗기게 됩니다. 특히 장기간 진행되는 실험의 로그(Log) 데이터나, 센서에서 수집된 환경 변수(온도, 습도, 가스 농도 등)를 주기적으로 담당자에게 전달해야 하는 경우가 빈번합니다.
매번 담당자가 직접 메일창을 열고, 데이터를 취합하여 첨부파일로 발송하는 수동 작업은 업무 효율을 크게 저하시킵니다. 이러한 병목 현상을 해결하기 위해 싱글보드컴퓨터(SBC)인 라즈베리파이와 파이썬(Python)을 활용한 자동화 시스템 구축이 필수적인 실무 역량으로 대두되고 있습니다.
오늘은 연구소와 교육 기관에서 즉시 실습하고 응용할 수 있도록, 네이버 SMTP 서버를 활용하여 센서 모니터링 경고 및 일일 보고서를 자동으로 발송하는 파이썬 스크립트 작성법을 상세히 다루어 보겠습니다.
가장 먼저 전체 실행 구조를 파악하기 위해, CLI(명령줄 인터페이스) 환경에서 수신자, 제목, 내용을 입력받아 자동으로 이메일을 발송하는 완성된 기본 뼈대 코드를 살펴보겠습니다. 실습 시 아래 코드를 라즈베리파이의 파이썬 IDE(Thonny 등)나 터미널에 복사하여 즉시 테스트해 보실 수 있습니다.
[주의 사항] 코드 내의 송신자 메일 주소와 로그인 정보는 반드시 본인의 실제 네이버 계정 정보로 수정해야 하며, 소스 코드를 깃허브(GitHub) 등 외부에 공개할 때는 개인정보가 유출되지 않도록 환경 변수(Environment Variables)로 분리하는 습관을 들이는 것이 좋습니다.
연구 및 개발 프로젝트에 해당 코드를 원활하게 이식하기 위해서는 단순히 코드를 복사하는 것을 넘어, 파이썬 내장 라이브러리의 동작 원리를 이해해야 합니다.
email.message 모듈은 이메일의 헤더(From, To, Subject)와 본문(Body)을 구조화하는 객체입니다. 리스트(List) 구조를 활용하여 msg['To'] 값에 여러 수신자를 지정할 수 있어, 다수의 연구원이나 클라이언트에게 동시에 보고서를 발송하는 시스템 구축이 용이합니다.while True: 무한 반복문과 예외 처리(try-except EOFError)를 결합하여 여러 줄의 텍스트를 안정적으로 변수에 담을 수 있도록 설계되었습니다.SMTP_SSL을 사용하여 포트 465번을 통한 종단 간 암호화 통신을 보장해야 합니다.파이썬 코드가 완벽하더라도 네이버 메일 환경설정에서 외부 기기(라즈베리파이)의 접근을 허용하지 않으면 AuthenticationError가 발생합니다. 라즈베리파이가 네이버 서버를 거쳐 이메일을 발송할 수 있도록 사전 세팅이 필요합니다.
| 항목 | 입력 및 설정 값 |
|---|---|
| SMTP 서버 호스트 | smtp.naver.com |
| 통신 포트(Port) | 465 (SSL 암호화 필수) |
| 서버 인증 방식 | 네이버 아이디 및 비밀번호 (2단계 인증 사용 시 앱 비밀번호 발급 필요) |
네이버 PC 화면 접속 후 메일 → 하단의 환경설정(톱니바퀴) → POP3/IMAP 설정 → [IMAP/SMTP 사용] 항목을 반드시 '사용함'으로 체크해야 합니다. 만약 계정 해킹 방지를 위해 2단계 인증을 설정해둔 계정이라면, 기존 로그인 비밀번호 대신 네이버 보안 설정에서 '애플리케이션 비밀번호(App Password)'를 별도로 생성하여 코드의 로그인 파라미터에 기입해야 정상적으로 작동합니다.
위의 기본 코드를 기반으로 라즈베리파이의 하드웨어 제어 능력(GPIO)을 결합하면, 강력한 무인 IoT 모니터링 관제 시스템으로 발전시킬 수 있습니다. 대학 연구소와 기업에서 실제로 가장 많이 활용되는 응용 시나리오는 다음과 같습니다.
if 조건문을 활용합니다. 예를 들어 서버실의 측정 온도가 특정 수치(예: 30도)를 초과하는 순간, 즉시 관리자의 스마트폰 연동 메일로 [긴급 경고] 메일을 비동기적으로 자동 발송하여 물리적 손상을 미연에 방지합니다..jpg 이미지를 파이썬의 MIME 구조를 활용해 메일 첨부파일 형태로 변환하여 보안 담당자에게 즉각 전송합니다.이처럼 파이썬을 활용한 메일 전송 자동화는 코드가 비교적 직관적이고 간단하여, 코딩에 익숙하지 않은 연구원이나 초보 엔지니어도 충분히 실무에 적용해 볼 수 있습니다. 여기에 라즈베리파이와 외부 하드웨어 센서를 조금만 확장하면 무궁무진한 솔루션 개발이 가능해집니다.
사내 업무 효율화, B2B 데이터 모니터링 시스템 제안, 혹은 공공 기관의 무인 센서 네트워크 구축을 기획 중이시라면, 오늘 다룬 자동화 스크립트를 기반으로 여러분만의 강력한 IoT 프로젝트를 완성해 보시기 바랍니다.
해당 프로젝트에서 나온 상품은 아래에서 확인가능합니다 ▼