Pythonで日報を自動化する方法
はじめに
日々の業務で重要な役割を果たす日報。これを毎日手作業で作成して送信するのは非常に手間がかかるものです。しかし、Pythonでスクリプトを作成し自動化することで、この作業を大幅に効率化できます。本記事では、Pythonを用いた日報メールの自動送信スクリプトの作成方法と、その設定方法を詳細に説明します。
事前準備
Pythonで日報を自動送信するために、以下の準備が必要です。
- Pythonのインストール: 公式サイトから最新のPythonをインストールしてください。
- 必要なライブラリのインストール:
bash pip install smtplib pip install email pip install pandas # もしCSVファイルを読み込む場合
スクリプト作成
必要なライブラリのインポート
まず、スクリプトに必要なライブラリをインポートします。
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import pandas as pd # CSVファイルを扱う場合
import datetime
日報データの収集
ここでは例として、日報データをCSVファイルから読み取るケースを紹介します。
def get_report_data():
# CSVファイルからデータを読み込む
df = pd.read_csv('daily_report.csv')
report_data = df.to_html(index=False) # HTML形式に変換
return report_data
メール本文の作成
メール本文にはHTML形式を使用します。
def create_email_body(report_data):
today = datetime.date.today().strftime("%Y-%m-%d")
html = f"""
<html>
<body>
<h2>日報 - {today}</h2>
<p>以下に本日の日報を記載します。</p>
{report_data}
</body>
</html>
"""
return html
メール送信機能の作成
Gmailを使用してメールを送信する場合の例を示します。
def send_email(subject, body, to_email):
from_email = 'your_email@gmail.com'
from_password = 'your_email_password'
msg = MIMEMultipart()
msg['Subject'] = subject
msg['From'] = from_email
msg['To'] = to_email
msg.attach(MIMEText(body, 'html'))
try:
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(from_email, from_password)
server.sendmail(from_email, to_email, msg.as_string())
server.quit()
print("メールが正常に送信されました")
except Exception as e:
print(f"メールの送信に失敗しました: {e}")
メイン処理の作成
これまで作成した関数を組み合わせて、日報メールを自動送信します。
if __name__ == "__main__":
report_data = get_report_data()
email_body = create_email_body(report_data)
subject = f"日報 - {datetime.date.today().strftime('%Y-%m-%d')}"
to_email = 'recipient_email@example.com'
send_email(subject, email_body, to_email)
スケジュール設定
スクリプトを毎日自動的に実行するためには、スケジューリングが必要です。WindowsではTask Scheduler、MacやLinuxではCronを使用してスクリプトを定期実行できます。
Windows
- タスク スケジューラを開く。
- 「基本タスクの作成」を選択。
- タスクの名前を入力し、トリガー(例: 毎日)を設定。
- 「プログラムの開始」を選択し、Pythonスクリプトのパスを指定。
- すべての設定が完了したら、タスクを保存。
Mac/Linux
- ターミナルを開く。
crontab -e
を実行。- 以下のようなcronジョブを追加して保存。毎日午後5時にスクリプトを実行する場合の例です。
0 17 * * * /usr/bin/python3 /your/script/path/daily_report.py
まとめ
以上の手順で、Pythonを使った日報メールの自動送信を実現できます。日報作成と送信の手間を軽減し、業務効率を大幅に向上させましょう。特にチームのコミュニケーションを円滑にするために、定期的な日報送信は非常に有効です。Pythonのスクリプトを使って、自動化への一歩を踏み出してみてください。
コメント