昆布乾燥室温湿度モニタリングシステム その8
昨日は MTA ssmtp によるメール送信機能を使用可能にしたが、実は Python または Ruby などを使って同様にメールが送信できる。今回は Python 2.7.9 を利用したメール送信デモンストレーションを書いてみた。参考にした「Raspberry pi 3とArduinoの連携によるハリネズミ温度管理システムの改良Ver1.1 」では一部のプロバイダーやウェブ上のメールビューワーで文字化けするので改良した。次回以降で温度計測と組み合わせるつもりだ。
プログラム
# -*- coding: utf-8 -*- import serial import time import os.path import datetime import smtplib from email import Encoders from email.Utils import formatdate from email.MIMEBase import MIMEBase from email.MIMEMultipart import MIMEMultipart from email.MIMEText import MIMEText from email.header import Header from email import charset #Google account ADDRESS = "ここにアカウントのメールアドレス" PASSWARD = "ここにアカウントのパスワード" #SMTP Server SMTP = "smtp.gmail.com" PORT = 587 CSET = "utf-8" def create_message(from_addr, to_addr, subject, body): msg = MIMEMultipart() msg["From"] = from_addr msg["To"] = to_addr msg["Date"] = formatdate() msg["Subject"] = Header(subject, CSET) body = MIMEText(body, "plain", CSET) msg.attach(body) return msg def send(from_addr, to_addrs, msg): smtpobj = smtplib.SMTP(SMTP, PORT) smtpobj.ehlo() smtpobj.starttls() smtpobj.ehlo() smtpobj.login(ADDRESS, PASSWARD) smtpobj.sendmail(from_addr, to_addrs, msg.as_string()) smtpobj.close() if __name__ == '__main__': #adress to_addr = "送り先のメールアドレス" #subject and body subject = "温度警告" body = "現在の温度 " + "40" + "度以下です。\n至急昆布乾燥室に急行して下さい。" #create message msg = create_message(ADDRESS, to_addr, subject, body) #send send(ADDRESS, [to_addr], msg) print('send aleart message.\n')