آموزش ارسال خودکار گزارشهای روزانه با ایمیل در پایتون
در دنیای امروز که بهرهوری و خودکارسازی وظایف اهمیت زیادی دارد، ارسال خودکار گزارشهای روزانه ایمیل میتواند به صرفهجویی در زمان و افزایش کارایی کمک کند. در...
چگونه ارسال خودکار گزارشهای روزانه ایمیل را با پایتون پیادهسازی کنیم
در دنیای امروز که بهرهوری و خودکارسازی وظایف اهمیت زیادی دارد، ارسال خودکار گزارشهای روزانه ایمیل میتواند به صرفهجویی در زمان و افزایش کارایی کمک کند. در این مقاله، نحوه پیادهسازی این فرآیند با استفاده از زبان برنامهنویسی پایتون را بررسی خواهیم کرد.
1. نصب کتابخانههای مورد نیاز
برای شروع، باید مطمئن شوید که کتابخانههای لازم روی سیستم شما نصب شدهاند. ما از کتابخانههای smtplib
و email
برای ارسال ایمیل و قالببندی آن و از کتابخانه schedule
برای زمانبندی ارسال ایمیل استفاده خواهیم کرد. برای نصب schedule
میتوانید از دستور زیر استفاده کنید:
pip install schedule
2. پیکربندی ایمیل
قبل از هر چیز، باید تنظیمات ایمیل خود را پیکربندی کنید. اگر از سرویس Gmail استفاده میکنید، مطمئن شوید که گزینه "دسترسی به برنامههای کمتر امن" را فعال کردهاید. همچنین، در صورتی که احراز هویت دو مرحلهای فعال است، باید یک رمز عبور مخصوص برنامه ایجاد کنید.
3. ایجاد اسکریپت
در این مرحله، اسکریپت پایتون را برای ارسال گزارشهای روزانه ایمیل ایجاد میکنیم. در زیر کد کامل این اسکریپت آمده است:
# Programmer Ebrahim Shafiei (ebrasha)
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import schedule
import time
# Email configuration
SMTP_SERVER = 'smtp.gmail.com' # For Gmail
SMTP_PORT = 587
EMAIL_ADDRESS = '[email protected]'
EMAIL_PASSWORD = 'your_password'
def send_email(subject, body, to_address):
# Create the email headers and set the sender, receiver, subject, and body
msg = MIMEMultipart()
msg['From'] = EMAIL_ADDRESS
msg['To'] = to_address
msg['Subject'] = subject
msg.attach(MIMEText(body, 'plain'))
# Connect to the email server and send the email
try:
server = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
server.starttls()
server.login(EMAIL_ADDRESS, EMAIL_PASSWORD)
server.sendmail(EMAIL_ADDRESS, to_address, msg.as_string())
server.quit()
print("Email sent successfully")
except Exception as e:
print(f"Failed to send email: {e}")
def daily_report():
# Example data for the email report
subject = "Daily Report"
body = "This is your daily report."
to_address = "[email protected]"
send_email(subject, body, to_address)
# Schedule the daily report
schedule.every().day.at("08:00").do(daily_report)
# Keep the script running
while True:
schedule.run_pending()
time.sleep(60)
4. راهاندازی اسکریپت
برای راهاندازی اسکریپت، مراحل زیر را دنبال کنید:
- آدرس ایمیل و رمز عبور خود را در متغیرهای
EMAIL_ADDRESS
وEMAIL_PASSWORD
قرار دهید. - تابع
daily_report
را برای شامل کردن دادههای واقعی گزارش که میخواهید ارسال کنید، اصلاح کنید. - آدرس ایمیل گیرنده (
to_address
) را به آدرس ایمیل گیرنده مورد نظر تغییر دهید. - زمان (
"08:00"
) را درschedule.every().day.at("08:00").do(daily_report)
به زمان دلخواه برای ارسال ایمیل تنظیم کنید.
5. اجرای اسکریپت
پس از تنظیمات بالا، اسکریپت را در یک فایل ذخیره کنید، برای مثال daily_email_report.py
، و با استفاده از دستور زیر آن را اجرا کنید:
python3 daily_email_report.py
این اسکریپت به طور نامحدود اجرا خواهد شد و هر دقیقه بررسی میکند که آیا زمان ارسال گزارش روزانه رسیده است یا خیر.
توضیحات دقیق
- smtplib: این ماژول یک شیء جلسه مشتری SMTP تعریف میکند که میتواند برای ارسال ایمیل به هر ماشینی با گوشدهنده SMTP یا ESMTP در اینترنت استفاده شود.
- email.mime.multipart & email.mime.text: این ماژولها کمک میکنند تا محتوای ایمیل با نوع MIME مناسب ایجاد شود.
- schedule: این کتابخانه برای زمانبندی کارها استفاده میشود. در اینجا برای زمانبندی کار ارسال ایمیل به صورت روزانه در یک زمان خاص استفاده شده است.
- while True: این حلقه اسکریپت را به طور مداوم اجرا نگه میدارد و هر دقیقه برای کارهای زمانبندی شده بررسی میکند.
با پیروی از این مراحل و سفارشیسازی اسکریپت به دلخواه، میتوانید ارسال خودکار گزارشهای روزانه ایمیل را به طور مؤثر انجام دهید. این فرآیند به شما کمک میکند تا بهرهوری خود را افزایش داده و زمان بیشتری برای انجام وظایف مهمتر خود صرف کنید.
دیدگاه های مربوط به این مقاله (برای ارسال دیدگاه در سایت حتما باید عضو باشید و پروفایل کاربری شما تکمیل شده باشد)