Outlook را با برنامه های پایتون خود ادغام کنید تا به صورت برنامه نویسی ایمیل ایجاد کنید، بنویسید و ارسال کنید.
پایتون در مسیر اتوماسیون چیزهای زیادی برای ارائه دارد و شما می توانید تنها با چند خط کد به عملکردهای زیادی دست پیدا کنید. این زبان در بسیاری از حوزه ها، از تجزیه و تحلیل داده ها گرفته تا مدیریت سیستم، محبوبیت پیدا کرده است.
Outlook یک سرویس گیرنده ایمیل محبوب است و می توانید از ویژگی های اتوماسیون Outlook پایتون برای ارسال سریع ایمیل ها بدون تلاش زیاد استفاده کنید.
برای یادگیری نحوه ارسال ایمیل های خودکار از پایتون با استفاده از Microsoft Outlook، باید ادامه مطلب را بخوانید.
برآوردن چند پیش نیاز
برای شروع، موارد زیر را دانلود و نصب کنید:
- Microsoft Outlook: باید برنامه MS Outlook را روی سیستم خود نصب و اجرا کنید. می توانید از Outlook با آدرس جیمیل یا هر ارائه دهنده ایمیل دیگری استفاده کنید.
- win32com.client: این کتابخانه شخص ثالث برای اتصال به برنامه های مایکروسافت ضروری است. از آنجایی که Microsoft Outlook یکی از این برنامه ها است، برای اتصال به سرور تبادل Outlook به این کتابخانه در پایتون نیاز دارید.
نصب win32com.client
win32com.client جنبه جدایی ناپذیر این کد است و برای برقراری ارتباط بین Microsoft Outlook و Python به یک کتابخانه کاملاً کاربردی نیاز دارید.
نسخه win32com.client را بررسی کنید
قبل از نصب، می توانید بررسی کنید که آیا win32com قبلاً روی دستگاه شما نصب شده است یا خیر. برخی از نسخه های IDE این بسته را به صورت پیش فرض ارائه می دهند. با دستور زیر می توانید بررسی کنید که آیا موجود است یا خیر.
python -m pip show pywin32
اگر خطای «پیپ» به عنوان فرمان داخلی یا خارجی شناسایی نمیشود» دریافت کردید، باید pip را در ویندوز، مک یا لینوکس نصب کنید.
پس از اجرای دستور بالا، در صورت دریافت شماره نسخه، نیازی به نصب مجدد آن ندارید.
پس از آن، اگر با پیغام خطای زیر مواجه شدید، باید کتابخانه win32com را روی سیستم خود نصب کنید:
'pywin32' is not recognized as an internal or external command, operable program, or batch file.
نصب کتابخانه win32com
Prompt را باز کنید و دستور pip را تایپ کنید تا کتابخانه از پنجره ترمینال نصب شود.
python -m pip install pywin32
دستورالعمل های روی صفحه را برای تکمیل فرآیند دنبال کنید. می توانید از دستور show پس از نصب برای بررسی اینکه آیا win32com با موفقیت روی سیستم شما نصب شده است یا خیر استفاده کنید.
python -m pip show pywin32
ارسال ایمیل از پایتون با استفاده از Outlook
Microsoft Outlook یکی از قدیمی ترین و پرکاربردترین کلاینت های ایمیل است که در اپلیکیشن ایمیل در لیست محبوب ترین ارائه دهندگان ایمیل پس از جیمیل و یاهو قرار می گیرد. پیوندهای اتوماسیون پایتون با Outlook جای تعجب ندارد، زیرا با چند ترفند اساسی، میتوانید به راحتی در حال حرکت ایمیل ارسال کنید.
پس از تکمیل پیش نیازهای بالا، زمان شروع به نوشتن کد برای ارسال خودکار ایمیل از Outlook با استفاده از پایتون است. برای شروع، باید کتابخانه win32com.client را با استفاده از عبارت import وارد کنید.
import win32com.client
اکنون می توانید برای اتصال پایتون و برنامه ایمیل مایکروسافت، Outlook، کد بنویسید.
ol = win32com.client.Dispatch('Outlook.Application')
جایی که:
- ol مرجع اتصال را ذخیره می کند.
- win32com.client یک کتابخانه ویندوزی است که می توانید از آن برای برقراری ارتباط بین پایتون و Outlook استفاده کنید.
- Dispatch تابعی است که اتصال را ایجاد می کند.
- Outlook.Application نام برنامه ای است که باید به آن متصل شوید.
در مرحله بعد، لازم است ابعاد پیام ایمیل جدید را تعریف کنیم تا پایتون متوجه شود که محتوا باید کجا به روز شود.
# size of the new email
olmailitem = 0x0
جایی که:
- olmailitem: متغیر جدید برای ذخیره ابعاد.
- 0x0: ابعاد پیام ایمیل جدید در حافظه پایتون.
به محض اینکه ابعاد بدنه ایمیل را تعریف کردید، توابع پایتون یک آیتم ایمیل جدید را باز می کند.
newmail = ol.CreateItem(olmailitem)
جایی که:
- newmail: متغیر جدید برای ذخیره مرجع ایمیل جدید.
- ol: مرجع ارتباطی که قبلا بین پایتون و Outlook ایجاد شده است.
- CreateItem(olmailitem): دستور ایجاد پیش نویس ایمیل جدید.
هر ایمیل نیاز به یک موضوع دارد و شما می توانید آن را در کد تعریف کنید تا پایتون قبل از ارسال ایمیل به گیرنده آن را به طور خودکار اضافه کند.
newmail.Subject = 'Testing Mail'
جایی که:
- newmail: متغیر برای ذخیره مرجع آیتم نامه جدید.
- موضوع: بسته به موضوعی که می خواهید به عنوان موضوع ایمیل خود داشته باشید، این می تواند متفاوت باشد.
میتوانید گیرندگان مورد نظر را در کلیدواژههای To و CC به شرح زیر اضافه کنید:
newmail.To = 'xyz@example.com'
newmail.CC = 'xyz@example.com'
جایی که:
- به: آدرس ایمیل گیرنده اصلی.
- CC: گیرندگان ایمیل کپی شده.
به همین ترتیب، حتی میتوانید نامهای BCC را اضافه کنید، در صورتی که میخواهید ایمیلها را به صورت ناشناس برای گیرندگان ارسال کنید. تنها کاری که باید انجام دهید این است که بعد از دستور CC عبارت زیر را ارسال کنید:
newmail.BCC = 'xyz@example.com'
اتوماسیون Outlook پایتون قابلیت ها و ویژگی های بومی Outlook را محدود نمی کند. به عنوان مثال، حتی زمانی که از پایتون برای مدیریت پاسخ های کلاینت ایمیل خود استفاده می کنید، همچنان می توانید برای چندین گیرنده ایمیل ارسال کنید. به سادگی یک جداکننده نیم دونقطه (;) بین شناسه های ایمیل در ستون To/CC/BCC اضافه کنید، و آماده می شوید.
در نهایت، هنگامی که موضوع و گیرندگان را تعریف کردید، میتوانید متن ایمیل را قبل از ارسال آن به گیرندگان در ستونهای To و CC به ایمیل جدید اضافه کنید.
newmail.Body= 'Hello, this is a test email to showcase how to send emails from Python and Outlook.'
برای افزودن پیوست به ایمیل خود می توانید از دستورات زیر استفاده کنید:
attach = 'C:\\Users\\admin\\Desktop\\Python\\Sample.xlsx'
newmail.Attachments.Add(attach)
اکنون ایمیل آماده ارسال است. دو گزینه وجود دارد که می توانید استفاده کنید. اگر می خواهید پیش نمایش ایمیل خود را قبل از ارسال آن به گیرندگان مشاهده کنید، می توانید از دستور Display() به صورت زیر استفاده کنید:
newmail.Display()
از طرف دیگر، اگر نمیخواهید ایمیل را پیشنمایش کنید و میخواهید مستقیماً آن را ارسال کنید، میتوانید دستور Display() را با دستور Send() جایگزین کنید.
newmail.Send()
استفاده از دستور Send() کمی مشکل است، زیرا پیش نمایش ایمیل را نمی بینید. اگر به طور منظم محتوای متن ایمیل خود را تغییر می دهید از این دستور عاقلانه استفاده کنید.
این هم کد کامل:
import win32com.client
ol=win32com.client.Dispatch("outlook.application")
olmailitem=0x0 #size of the new email
newmail=ol.CreateItem(olmailitem)
newmail.Subject= 'Testing Mail'
newmail.To='xyz@example.com'
newmail.CC='xyz@example.com'
newmail.Body= 'Hello, this is a test email.'
# attach='C:\\Users\\admin\\Desktop\\Python\\Sample.xlsx'
# newmail.Attachments.Add(attach)
# To display the mail before sending it
# newmail.Display()
newmail.Send()
هنگامی که کد با موفقیت اجرا شد، باید بتوانید به صورت خودکار ایمیل ارسال کنید. در صورتی که مشکلی وجود داشته باشد و در هنگام ارسال ایمیل با خطا مواجه شوید، ممکن است مشکل پیکربندی در Outlook وجود داشته باشد. شما باید تحقیقات خود را با عیب یابی رایج ترین خطاهای Outlook شروع کنید.
مزایای اتوماسیون ایمیل پایتون
خودکار کردن ایمیل های خود با استفاده از پایتون به شما امکان می دهد بدون باز کردن MS Outlook آنها را مستقیماً ارسال کنید. اگر از کاربران مشتاق پایتون هستید و خیلی مشتاق باز کردن مکرر یک سرویس گیرنده ایمیل برای تایپ ایمیل ها نیستید، می توانید به زبان برنامه نویسی اجازه دهید این کار را برای شما انجام دهد.
چرا وقتی میتوانید با استفاده از پایتون ایمیلهای خودکار را با چند خط کد بفرستید، چرا ساعتها را صرف انجام کارهای تکراری کنید؟