児童書のおすすめ本60選

Python:ラズベリーパイでGmail送信出来るようにする

ラズベリーパイのロゴ

ラズベリーパイなどのサードパーティー製の端末からインターネットを通じてGメール送信するためには、Googleアカウントのセキュリティ設定の変更が必要
以下その手順。

Googleアカウントの設定

まずGmailにログインして右上のアカウントアイコンをクリック。

ラズベリーパイでGmail送信出来るようにする

Googleアカウントをクリック。

ラズベリーパイでGmail送信出来るようにする

セキュリティタブをクリック。

ラズベリーパイでGmail送信出来るようにする

安全性の低いアプリのアクセスという項目までスクロールして「アクセスを有効にする(非推奨)」をクリック。

ラズベリーパイでGmail送信出来るようにする

安全性の低いアプリの許可:無効と表示されている右側のボタンをクリック。

ラズベリーパイでGmail送信出来るようにする

ボタンが青く変化して安全性の低りアプリの許可:有効と表示が変わる。

ラズベリーパイでGmail送信出来るようにする

設定は以上でOK。

安全性の低りアプリの許可を有効にするとすぐにGoogleから「重大なセキュリティ通知」というタイトルで以下のようなメールが到着する。
セキュリティ上は危険度が上がったということなので、ここから先は自己責任でということになる。

ラズベリーパイでGmail送信出来るようにする

Gmail送信サンプルコード

実際にラズベリーパイでメール送信できるかどうかのチェック用にメール送信サンプルコードを掲載しておく。

各自のGmailアカウントに合わせて以下の行の修正が必要

22行 Gmailアドレス
23行 Gmailパスワード
29行 送信先のメールアドレス

実行方法

sudo python3 sendGmailPi.py

sendGmailPi.py

#!/usr/bin python3
# -*- coding: utf-8 -*-

"""
	ラズパイ(Raspberry Pi)でGmail送信をやってみる
		python 3.2.5
		OS: Rasbian(Raspberry Pi Model B)
"""

# メール送信のためのSMTPセッションクライアントを作成するため
import smtplib

# メールの送信日付をインターネットで送信できるフォーマットで指定するため
from email.utils import formatdate

# メール本文に日本語を送信できるようにするためのMIME規格に変換するため(E-mailも基本は英語圏でできた規格なのです!)
from email.mime.text import MIMEText

if __name__ == "__main__":

	# Gmailアカウント設定
	gmail_addr = "《Gmailアドレス》"		# 例)hogehoge@gmail.com
	gmail_pass = "《Gmailパスワード》"	# 例)abc123xyz
	SMTP = "smtp.gmail.com"
	PORT = 587
		
	# 送信メール情報
	from_addr = gmail_addr				# 送信元メールアドレス(Gmailでなくてもよい)
	to_addr = "《送信先メールアドレス》"		# 例)helloworld@yahoo.com
	subject = "ラズパイGmail送信テスト"		# 件名
	body = "ラズパイだよ!\n今日の調子はどうかな?"	# 本文
	# メールメッセージを作成
	msg = MIMEText(body, "plain", "utf-8")	# ラズパイのpython3では3つの引数でエンコードをutf-8にしないと
						# 'ascii' codec can't encode characters in position 0-14: ordinal not in range(128) というエラーがでる
	msg["From"] = from_addr
	msg["To"] = to_addr
	msg["Date"] = formatdate()			# 日付をインターネットで送信できるフォーマットで指定
	msg["Subject"] = subject
		
	# メール送信
	try:
		print("メール送信中...")
		send = smtplib.SMTP(SMTP, PORT)		# GmailのSMTPを利用してSMTPオブジェクトを生成
		send.ehlo()
		send.starttls()
		send.ehlo()
		send.login(gmail_addr, gmail_pass)	# Gmailにログイン
		send.send_message(msg)			# メールを送信
		send.close()
	except Exception as e:
		print("except: " + str(e))		# エラー送出時のメッセージ表示
	else:
		print("{0}へメール送信したよ!".format(to_addr))	# メールが正常に送信されたときのメッセージ

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA