雑感等

音楽,数学,語学,その他に関するメモを記す.

プログラムが終了したらメールを送信するpythonプログラム

windows 7や10で動作するはず.

使い方

"監視する実行ファイル名.exe"がすでに実行されているときに, 以下のプログラムを開始する.

time.sleep(10)のとおり,10秒おきにプログラムが終了したか確認する.

プログラムが起動していなければ(終了していれば) メールを送信し,このpythonプログラム自体も勝手に終了する.

import smtplib
import subprocess
import time

while True:
    # 以下は https://a-zumi.net/python-windows-tasklist/ を参考にした
    cmd = 'tasklist'
    proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
    time.sleep(10)
    for line in proc.stdout:
        s=str(line)
        if "監視する実行ファイル名.exe" in s: 
            break
            pass
    else:
        break
        pass
    continue
    pass

print("finish")

# 以下は https://blog.ikappio.com/python-send-mail-connecting-gmail-using-smtplib/ を参考にした

# Import the email modules we'll need
from email.message import EmailMessage

# Create a text/plain message
msg = EmailMessage()
msg.set_content('メール本文')

msg['Subject'] = 'メールタイトル'
msg['From'] = '送信元のアドレス'
msg['To'] = '送信先のアドレス'

# Send the message via our own SMTP server.
s = smtplib.SMTP('smtp.gmail.com', 587)

s.starttls()
# 2つ目の引数に生成したアプリパスワードを指定する
s.login("送信アカウントのアドレス", '送信アカウントのアプリパスワード')

# 送信
s.send_message(msg)
s.quit()