こんにちは!今日は、Pythonを使って日報メールを自動で送信する方法について詳しく説明します。このガイドは、プログラミング初心者の方でも簡単に理解できるようにステップバイステップで説明します。
必要なもの
- Pythonがインストールされたコンピュータ
- Gmailアカウント
- インターネット接続
ステップ1:Pythonのセットアップ
まずは、Pythonがインストールされていることを確認しましょう。もしインストールされていない場合は、公式サイトからダウンロードしてインストールしてください。
ステップ2:必要なライブラリをインストール
次に、メールを送信するための標準ライブラリを使います。追加でインストールが必要なのはスケジューリングを行うschedule
ライブラリです。以下のコマンドを実行してインストールします。
shコードをコピーするpip install schedule
ステップ3:Pythonスクリプトの作成
以下のコードをテキストエディタにコピーして、daily_report.py
という名前で保存してください。
pythonコードをコピーするimport smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import schedule
import time
import datetime
# メール送信関数
def send_daily_report():
# SMTPサーバーの設定
smtp_server = 'smtp.gmail.com'
smtp_port = 587
smtp_user = 'your_email@gmail.com'
smtp_password = 'your_password'
# メールの内容
to_address = 'recipient_email@example.com'
subject = f'日報 - {datetime.datetime.now().strftime("%Y-%m-%d")}'
body = '今日の作業内容を報告します。'
# メールを作成
msg = MIMEMultipart()
msg['From'] = smtp_user
msg['To'] = to_address
msg['Subject'] = subject
msg.attach(MIMEText(body, 'plain'))
# メールを送信
try:
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(smtp_user, smtp_password)
server.send_message(msg)
server.quit()
print('日報メールを送信しました。')
except Exception as e:
print(f'メールの送信に失敗しました: {e}')
# スケジュール設定(毎日18:00に送信)
schedule.every().day.at("18:00").do(send_daily_report)
# スケジュールを実行
while True:
schedule.run_pending()
time.sleep(1)
コードの説明
- インポート:必要なライブラリをインポートします。
- メール送信関数の定義:
send_daily_report
関数でメールの送信を行います。 - SMTPサーバーの設定:GmailのSMTPサーバーを使用します。
- メールの内容:送信先アドレス、件名、本文を設定します。
- メールの送信:SMTPサーバーに接続し、メールを送信します。
- スケジュール設定:
schedule
ライブラリを使って、毎日18:00にメールを送信するように設定します。 - スケジュールの実行:スケジュールを実行し、メールを送信します。
ステップ4:Gmailアカウントの設定
Gmailアカウントで「安全性の低いアプリのアクセス」を許可する必要があります。以下のリンクから設定してください:安全性の低いアプリのアクセス
もしくは、Googleアカウントの設定でアプリパスワードを生成し、それを使用してください。
ステップ5:スクリプトの実行
保存したスクリプトを実行します。以下のコマンドをターミナルまたはコマンドプロンプトで実行してください。
shコードをコピーするpython daily_report.py
これで、毎日18:00に日報メールが自動で送信されるようになります。
ステップ6:自動実行の設定
Linuxのcronを使う方法
Linuxでは、cron
を使ってスクリプトを自動実行することができます。以下の手順で設定します。
crontab
を編集します。
shコードをコピーするcrontab -e
- 以下の行を追加して保存します(例:毎日18:00にスクリプトを実行)。
shコードをコピーする0 18 * * * /usr/bin/python3 /path/to/daily_report.py
Windowsのタスクスケジューラを使う方法
- 「タスクスケジューラ」を開きます。
- 「タスクの作成」をクリックし、名前を設定します。
- トリガーで「毎日」を選び、時間を18:00に設定します。
- 「操作」で「プログラムの開始」を選び、Pythonスクリプトのパスを指定します。
まとめ
これで、Pythonを使って日報メールを自動で送信するスクリプトの設定が完了しました。定期的にメールが送信されることで、業務効率が向上することを願っています。