2015/08/06(木)08:56
yagmail で gmail のメール送信
Pascal van Kooten さんの yagmail (Yet Another GMAIL client) を使ってみた。
インストール
pip install yagmail
~/.yagmail にアカウント名だけ1行入力しておき、メールを送信してみる。
import yagmail
yag = yagmail.SMTP()
contents = ['This is the body, and here is just text http://somedomain/image.png',
'You can find an audio file attached.', '/local/path/song.mp3']
yag.send('to@someone.com', 'subject', contents)
そうすると、パスワードを入力できるのだが、入力しても、
smtplib.SMTPAuthenticationError: (534, '5.7.9 Application-specific password required. Learn more at\n5.7.9 https://support.google.com/accounts/answer/185833 jdddddddddddddd.96 - gsmtp')
のようなエラーが表示されてメールを送信できない。
アプリ パスワードでログインのページを参照する。2 段階認証プロセスを使用してあるアカウントから送信したので、このエラーとなったと分かる。Google のアプリパスワードを設定してやり、表示されたコードをパスワードに設定すると、メールが送信できるようになった。
まずは、アプリパスワードを生成して、上記のコードの一部を
yag = yagmail.SMTP('GMAILのアカウント', 'アプリパスワード')
と書き換えてメールを送信すると、送信成功。
そのままスクリプトの中に入れておくのは、よろしくないので、keyring に登録し直す。
yagmail.register('GMAIL のアカウント', 'アプリパスワード')
を実行して、keyring に登録し直す。これで、設定スクリプトは削除して、最初のスクリプトでメールが送信できるようになった。HTML メールも、画像の添付も簡単なので便利。yagmail の使い方。yagmail 素敵。
スクリプトから生のパスワードを追い出すには、keyringを使うのがいいなと改めて認識。次のページも参照。
python:keyringによるパスワード管理
スクリプトから生パスワードを追い出す