資産運用の成果の記録は客観的な振り返りのために非常に重要です。
しかし定期的な記録はなかなか骨の折れる作業ですよね。
そこで、プログラミングによる記録の自動化をススメていますが、証券会社のWebページのデザイン変更などの理由で正常にデータを取得できなくなることがあります。
データを取得できていないことに気が付かずにいると、せっかく自動化した意味がなくなってしまいます。
そんな時は処理結果をメールで通知するようプログラムをカスタマイズしましょう。
今回はpythonでメール送信をするコードをご紹介します。
pythonでメール送信
Gmailでプレーンテキストのメールを送信するサンプルコードです。
import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.utils import formatdate
FromAdd = '送信元メールアドレス'
ToAdd = '送信先メールアドレス'
Subject = '件名'
Body = '本文'
#送信サーバーの設定
SmtpHost = 'smtp.gmail.com'
SmtpPort = 465
UserName = FromAdd
Password = '送信元メールアドレスのパスワード'
#文字コード
Charset = 'ISO-2022-JP'
#メッセージの作成
Message = MIMEText(Body, 'plain', Charset)
Message['Subject'] = Header(Subject, Charset)
Message['From'] = FromAdd
Message['To'] = ToAdd
Message['Date'] = formatdate(localtime=True)
#メールの送信
Smtp = smtplib.SMTP_SSL(SmtpHost, SmtpPort)
Smtp.login(UserName, Password)
Smtp.sendmail(FromAdd, ToAdd, Message.as_string())
Smtp.close()
説明していきます。
emailパッケージを使用してメッセージを作成し、smtplibモジュールを使用してメールを送信しています。
送信元のGmailアドレスのSMTPサーバーでメールを送信しています。
Passwordには送信元のGmailアドレスのパスワードを設定してください。
文字コードはメールでは一般的なISO-2022-JPを指定していますので、日本語も大丈夫。
サンプルコードを関数化するとさらに便利です。
def gmail(ToAdd,Subject,Body):
import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.utils import formatdate
FromAdd = '送信元メールアドレス'
'''
ToAdd = '送信先メールアドレス'
Subject = '件名'
Body = '本文'
'''
#送信サーバーの設定
SmtpHost = 'smtp.gmail.com'
SmtpPort = 465
UserName = FromAdd
Password = '送信元メールアドレスのパスワード'
#文字コード
Charset = 'ISO-2022-JP'
#メッセージの作成
Message = MIMEText(Body, 'plain', Charset)
Message['Subject'] = Header(Subject, Charset)
Message['From'] = FromAdd
Message['To'] = ToAdd
Message['Date'] = formatdate(localtime=True)
#メールの送信
Smtp = smtplib.SMTP_SSL(SmtpHost, SmtpPort)
Smtp.login(UserName, Password)
Smtp.sendmail(FromAdd, ToAdd, Message.as_string())
Smtp.close()
上記のようにすることで、
「送信先」
「タイトル」
「メッセージ」
を入力するだけでメールが送信できるようになります。
使い方はこんな感じ。
ToAdd = 'aaa@gmail.com'
Subject = 'エラー発生'
Body = '資産データを取得できませんでした'
gmail(ToAdd,Subject,Body)
エラー処理に組み入れるとこんな感じになります。
try:
処理1
Subject = '成功'
Body = '正常に終了しました'
except:
Subject = '失敗'
Body = '資産データを取得できませんでした'
ToAdd = 'aaa@gmail.com'
gmail(ToAdd,Subject,Body)
処理が正常に終了したときの通知が不要であれば、失敗時のみ通知するようにするものアリですね。
最後に
pythonでメール送信するコードをご紹介しました。
参考にしていただければ嬉しいです。
今度、Google Apps Scriptでのメール送信のサンプルコードもご紹介します。
pythonでSBI証券へログインするサンプルコードを紹介しています。こちらもご覧ください。
pythonでファイルの整理をするサンプルコードを紹介しています。こちらもご覧ください。
おすすめ書籍
証券口座にログインしたあとに必要なデータの取得方法や加工の方法など、pythonでのWebスクレイピングの基本が学べます。
pythonを基礎から学ぶにはこちらもどうぞ。
無料のオープン講座もあり、講義&実習スタイルでPythonの初歩を学べます。
転職やキャリアアップ、フリーランスを本気で考えている方向けのプログラミングスクールです。
転職などのサポートも充実しているため、未経験からIT業界へ転職を求めている方へおすすめです!
techmeetsはプロのエンジニアになることを支援するオールジャンルカバー型エンジニアスクールです
GEEK JOBは、「学びかた」を改革し、自ら学び自らサービスを創り出す人を増やすをミッションにプログラミング学習や転職・就職支援、エンジニアの育成を行なっています。
コメント