##参考元
gmailを送るためのSMTPの設定
https://www.lifewire.com/what-are-the-gmail-smtp-settings-1170854
smtpの公式ドキュメント:
https://docs.python.jp/3/library/smtplib.html
emailモジュールの公式ドキュメント:
https://docs.python.org/ja/3.5/library/email-examples.html
##使うライブラリー
from email.mime.text import MIMEText
import smtplib
##gmailから送るためのコード
いくつか注意点:
- この.pyのファイルの名前を"email.py"にしないこと。pythonにはemailモジュールが既にあるため。特に仮想環境上で別の.pyファイルと紐付ける場合は大抵バグる。
- 事前に自分のgoogleアカウント→アカウントにアクセスできるアプリ→安全性の低いアプリの許可:無効→有効へ。あいにくgoogleには安全度が低いと見なされている。
#don't be this file name "email.py"
#becasuse 'email module' is alreday ocuppyed
#it mean don't use module name already exist
from email.mime.text import MIMEText
import smtplib
def send_email(email, chinpo, average, count):
#送り元
from_email="自分のgmailアドレス@gmail.com"
from_password="gmailアドレスに対応したpassword"
#送り先
to_email=email
#メールの内容
subject="Chinpo data"
message="Hey there, your chinpo size is <strong>%s</strong>.<br>Average size of <strong>%s</strong> people is <strong>%s</strong>.<br>Thanks!" % (chinpo, count, average)
msg=MIMEText(message, "html")
msg["Subject"]=subject
msg["To"]=to_email
msg["From"]=from_email
gmail=smtplib.SMTP("smtp.gmail.com", 587)
#gmail.ehlo()
gmail.starttls()
gmail.login(from_email, from_password)
gmail.send_message(msg)
#gmail deal with smtp as less scure, 安全性の低いアプリを許可をonへ
#そして迷惑メールに振り分けられていると
- 前提として、有効なgmailアカウントが必要。要はgmailのメールアドレスとパスワードが必要。送信元。
- もちろん送り先のメールアドレスもいる
- メールの本体になるのは
MIMEText
。ここにメールの文章やその他情報を渡す。msg
変数をprintすると(下記※1)辞書みたいなのが出力される。_subtype
って引数にメールの中身のコンテントタイプを登録可能。html
とか。デフォルトはplain
。html
を指定することで、htmlタグを使えるようになる。変数のmessage
に入ってる<strong>
はhtmlタグ。文字を太字強調できる。 - msg["Subject"]でメールの件名。["To"]で宛先のEメールアドレス。["From"]は送り元のメールアドレスを登録する。
-
SMTP
はメールサーバへ接続してメールを送信する機能を提供してくれる。今回はgmailで送るので、
gmailのサーバーアドレスsmtp.gmail.com
(ホスト名)。SMTP port番号を587
を渡す。参考元:https://www.lifewire.com/what-are-the-gmail-smtp-settings-1170854 -
starttls()
メソッド。TLS (Transport Layer Security) モードでSMTP接続する。以降のSMTPコマンドは暗号化される。 - gmailにはアカウントのログインが必要。
login()
メソッドに自分のメールアドレスと、パスワードを渡す。 -
send_message()
メソッドでメールを送信できる。
※1
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
databaseから値を持ってきて、送るとか。
このクソ便利なschedule
モジュール: https://pypi.org/project/schedule/ を使って提示連絡を自動化するとかできる。
-
schedule
は時間、日付、曜日で時間を指定できる。曜日+時間みたいな組み合わせも可能。
でもEメールの確認すげぇめんどくさいから、一刻も早くこの世からEメールが消滅してくれることを願ってる。メールボックス開くのが憂鬱やねん。
##あとがき
最近勘違いしてたこと。ニューラルネットワーク(Neural Network)の呼び方を、ニュートラルネットワークと間違えていた。何を中立ちしてくれるんやろな?