python で GMail おくってみた

昨日pythonを使って作業効率化できることを知り、早速実践。

pythonを使ってGMailを送るコードを作成しました。

いつか使えるかもしれないので記録しておきます。

まずは文字のみのメールを送る場合

import datetime
import smtplib #メールサーバを操作するもの
import ssl
from email.mime.text import MIMEText  #日本語表示させるためのもの
import sys, codecs

sys.stdout = codecs.getwriter("utf-8")(sys.stdout)

gmail_account = "自分のgmailアドレス"
gmail_password = "googleのパスワード"
mail_to = "送り先のメアド" #gmailアドレス以外でも良い
send_name="送り先の名前"

today_date = datetime.date.today()#日付を取得

subject = "{0}様、本日は{1}です。".format(send_name,today_date)#件名
body = "Hello,World! <br>秋ですね。<br>今日は{0}です。".format(delivery_date)#本文

msg = MIMEText(body, "html")
msg["Subject"] = subject
msg["To"] = mail_to
msg["From"] = gmail_account

server = smtplib.SMTP_SSL("smtp.gmail.com", 465, context=ssl.create_default_context())
server.login(gmail_account, gmail_password)
server.send_message(msg)  #メールを送る
server.close()
print('送信完了')

xmodemを用いた送信

ラズパイで撮影した動画をxbeeを使って送信したい。xmodemを使おうということでネットで調べたところ、良さげなプログラムを発見。

ところが。

エラー出まくり。。。

ネットで拾ったプログラムなんだもの。しょうがない。夜な夜なプログラムを修正することはや3日。

ついに送信できたー!!というわけで、以下のプログラムが完成版。

import serial
from xmodem import XMODEM

<200b>ser = serial.Serial('/dev/ttyUSB0',115200) 
'''USBの名前と通信速度を記述。USBの名前は接続するたびに変わるので、コマンドで確認。 ls /dev/ttyUSB*と打ち込めば確認できる。'''

def getc(size, timeout=1):
	return ser.write(data) or None
def putc(data, timeout=1):
	return ser.write(size) or None

modem = XMODEM(getc,putc)

<200b>stream = open('ファイル名','rb')
modem.send(stream)

(追記:なぜか<200b>という文字が勝手に出てくる。これは消して扱う。)

次に。ラズパイにxmodemモジュールをインストールする。

コマンドに、pip3 install xmodem
と打ち込めばインストールできる。

あとは実行するだけ。

xmodemでは通信速度が遅いのでzmodemもやってみたところ、インストールしたzmodemプロトコルが未完成のようで実行できなかった。残念。

ちなみに今回使ったマイコンxbeeがこちら。

スイッチサイエンス XBee S2C / ワイヤアンテナ型

価格:2,521円
(2020/9/10 14:02時点)
感想(0件)

ラズベリーパイ3 A コンピュータボード

価格:3,829円
(2020/9/10 14:06時点)
感想(0件)