PythonでGmail送信

退屈なことはPythonにやらせよう16章まで進んで来ました。
今日はPythonでGmai送信をやってみましたが、
本に書かれているコードそのまま書くとちょっと気になる動作してましたので、修正した後のコードも載せていきます。

退屈なことはPythonにやらせよう

気になるコード(動作)

本の中のサンプルコードを実装した場合(しようとした場合)にうまく動作していなかった事は次の3つ。

  1. Googleの2段階認証について
  2. 宛先設定について
  3. 日本語本文の送信について

1はsmtpサーバーに接続する際のメールアドレスとパスワードの設定値について。
Gmailなんかはセキュリティ向上のため2段階認証を進めてきています。
言われるがままに2段階認証を設定している場合、アカウントパスワードを設定しても認証エラーが発生します。

アプリ用のパスワードをGoogle側で作成して、そのパスワードを設定します。
手順はこちらを参照。

 

2.宛先設定について
サンプルコードではsendmail()でのみ送信先アドレスを設定してます。

これだと、bccでメール送信されていました。

 

3.日本語本文の送信について
サンプルコードではMIMETextを使って、メッセージを組み立てましょう。
となっていましたが、これで書くとメッセージ本文が拡張子不明の添付ファイルになって送信されていました。

コードはこんな感じ

送られてくるメールはこう

書き換えた全文コード

宛先がToで送信されるのと、
日本語を含む本文もしっかりと送信されるように修正したコードがこちら。

だんだんとノンプログラマーには対処厳しくなってきたと感じるんですが、
大丈夫なんでしょうかね?

コメント