すやすや生活日記

専業主婦が日々を記録するブログ

偉人の名言を毎朝メールしてくれるアプリを改造してみた

 

以前、偉人の名言を毎朝メールしてくれるアプリをPythonで作ってみたのだが、

ずーっと毎朝同じようにメールが届くのがウザくなってきた(ダイレクトメールのように感じてきた)

 

popololo-nyanya.hatenablog.com

 

じゃあ、毎日じゃなくてランダムで送るようにしようと思い、改造。

乱数を発生させ、乱数が偶数の時だけメールを送るようにした。

 

※改造した部分は赤文字

import datetime #③
import schedule
import pandas as pd
import random
import smtplib
from email.mime.multipart import  MIMEMultipart
from email.mime.text import MIMEText

 

print("起動しました")


#メール送信        
def mail_export(body):

    #SMTPサーバーに接続
    smtp_server = "smtp.gmail.com"
    port = 587
    server = smtplib.SMTP(smtp_server, port)

    #TLS暗号化の設定
    server.starttls()

    #SMTPサーバーにログイン
    login_address = "自分のメールアドレス"
    login_password = "自分のパスワード"
    server.login(login_address, login_password)

    #メッセージを作成
    message = MIMEMultipart()
    message["Subject"] = "おはようございます。"
    message["From"] = "送信元メールアドレス"
    message["To"] = "宛先メールアドレス"
    text = MIMEText(body)
    message.attach(text)

    #メール送信
    server.send_message(message)

    #SMTPサーバの切断
    server.quit()     
    
    
def task():
    #0~99の乱数を発生させる
    today_num = random.randrange(100) #①
    
    if today_num % 2 == 0: #②
        # 名言リストを読み込んでデータフレームに格納
        df = pd.read_csv("meigen.csv", encoding="shift-jis")

        # 0~92の乱数を発生させる
        num = random.randrange(93)
        
        # メール本文の作成
        mail_body = df['aphorism'][num] + '\r\n\r\n     ――― '  + df['person'][num]
        mail_export(mail_body)
        print("メールを送信しました。{}".format(datetime.datetime.now()) ) #③
    
    else:
        print("今日は無しです。{}".format(datetime.datetime.now()) ) #③
         
        
# スケジュール登録(毎日)
schedule.every().day.at("07:00").do(task)

# スケジュール実行
while True:
    schedule.run_pending()
    time.sleep(10)

 

 

 0~99の乱数を発生させ、変数today_numに代入

 today_numが2で割り切れる時(偶数の時)だけ、メールを送信

 メールを送信したか否かをタイムスタンプ付きで表示

 

ちなみに、前回より変数numの数が増えているのは、スクレイピングで名言をいっぱい集めてCSVのデータを増やしたから。

 

プログラムをラズパイで起動してみたら、順調に動いている。

 

ただランダムで送るようにしただけなのに、送られてきたメールをちゃんと読むようになった。

偶然の事象に「運命」という言葉を結び付けやすい性質が人にはあるのかもしれない。

送られてきた偉人の名言が、その日の自分に必要な言葉かもしれない、、、という感情がわきやすくなる。

 

毎日手に入るものは大切にしようと思わないけれど、手に入るか分からないものは希少価値があるように思えるんだなぁという発見があった。