برای ارسال ایمیل با پایتون به چه مواردی نیاز دارید؟ برخی از برنامه نویسی های اساسی و دانش وب به همراه مهارت های ابتدایی پایتون. فرض می کنیم شما قبلاً یک برنامه وب با این زبان ساخته اید و اکنون باید عملکرد آن را با اعلان ها یا ارسال ایمیل های دیگر گسترش دهید. این آموزش شما را در مهمترین مراحل ارسال ایمیل از طریق سرور SMTP راهنمایی می کند:
اولین خبر خوب در مورد پایتون این است که یک ماژول داخلی برای ارسال ایمیل از طریق SMTP در کتابخانه استاندارد خود دارد. نصب و راه اندازی اضافی مورد نیاز نیست. با استفاده از عبارت زیر می توانید ماژول را وارد کنید:
import smtplib
برای اطمینان از اینکه ماژول به درستی وارد شده است و توضیحات کاملی از کلاس ها و آرگومان های آن را دریافت می کنید، در یک جلسه تعاملی پایتون تایپ کنید:
help(smtplib)
در مرحله بعدی، کمی در مورد سرور ها صحبت خواهیم کرد: انتخاب گزینه مناسب و پیکربندی آن.
هنگام ایجاد یک برنامه جدید یا اضافه کردن عملکرد، به ویژه هنگام انجام آن برای اولین بار آزمایش روی سرور محلی ضروری است. در اینجا لیستی کوتاه از دلایل آورده شده است:
اگر کار در محیط محلی را ترجیح می دهید، سرور خطایاب محلی SMTP ممکن است یک گزینه باشد. برای این منظور، پایتون یک ماژول smtpd ارائه می دهد. این یک ویژگی DebuggingServer دارد که پیام هایی را که ارسال می کنید دور انداخته و آن ها را برای stdout چاپ می کند. با تمام سیستم های عملیاتی سازگار است.
سرور SMTP خود را روی localhost: 1025 تنظیم کنید.
python -m smtpd -n -c DebuggingServer localhost:1025
برای اجرای سرور SMTP در پورت 25، به مجوز های root نیاز دارید:
sudo python -m smtpd -n -c DebuggingServer localhost:25
به شما کمک می کند کد خود را بررسی کنید و در صورت وجود، مشکلات احتمالی را نشان می دهد. با این وجود به شما این امکان را نمی دهد که نحوه ارائه الگوی ایمیل HTML خود را بررسی کنید.
سرور SMTP جعلی از کار یک وب سرور شخص واقعی تقلید می کند. در مثال های بیشتر در این پست، ما از Mailtrap استفاده خواهیم کرد. فراتر از آزمایش ارسال ایمیل، به ما امکان می دهد نحوه ارائه و نمایش ایمیل را بررسی کنیم، داده های خام پیام را بررسی کرده و همچنین گزارش هرزنامه را به ما ارائه می دهد. راه اندازی Mailtrap بسیار آسان است: شما فقط باید اعتبارنامه تولید شده توسط برنامه را کپی کرده و در جای خود جایگذاری کنید.
در اینجا نحوه مشاهده آن در عمل آمده است:
Mailtrap کار را حتی ساده تر می کند. به بخش Integrations در زبانه تنظیمات SMTP بروید و الگوی پیام آماده را برای استفاده آماده کنید که دارای اعتبار نامه Mailtrap در آن است. این ابتدایی ترین گزینه برای آموزش اسکریپت پایتون شماست که چه کسی چه چیزی را برای کسی ارسال می کند:
کد خیلی ساده به نظر می رسد، درست است؟ بیایید نگاهی دقیق به آن بیندازیم و برخی از موارد مدیریت خطا را اضافه کنیم (به # توضیحات بین آن رجوع کنید). برای گرفتن خطا، از بلوک های “try” و “except” استفاده می کنیم.
پس از دریافت نتیجه ارسال شده در Shell، باید پیام خود را در صندوق ورودی Mailtrap خود مشاهده کنید:
مرحله بعدی در تسلط بر ارسال ایمیل با پیوست فایل ها در پایتون است. پیوست ها هنوز هم اشیا M MIME هستند اما ما باید آن ها را با ماژول base64 رمزگذاری کنیم. چند نکته مهم در مورد پیوست ها:
:Input
:Output
برای پیوست کردن چندین فایل، می توانید چندین بار از روش () message.attach استفاده کنید.
تصاویر حتی اگر بخشی از متن پیام باشند، پیوست نیز هستند. سه نوع از آن ها وجود دارد: پیوست های CID (تعبیه شده به عنوان یک شی MIME)، تصاویر base64 (تعبیه داخلی) و تصاویر لینک داده شده. بیایید به مثال ها بپردازیم. برای افزودن پیوست CID، ما یک پیام چند بخشی MIME با مولفه MIMEImage ایجاد خواهیم کرد:
:Output
تصویر CID هم به عنوان بخشی از پیام HTML و هم به عنوان پیوست نشان داده می شود. پیام های با این نوع تصویر معمولاً به عنوان اسپم در نظر گرفته می شوند: برای مشاهده میزان هرزنامه و توصیه های مربوط به بهبود آن، برگه Analytics را در Mailtrap بررسی کنید.
بسیاری از سرویس گیرندگان ایمیل – به ویژه Gmail – در بیشتر موارد تصاویر CID را نمایش نمی دهند. بنابراین بیایید نحوه درج یک تصویر رمزگذاری شده با base64 را بررسی کنیم. در اینجا ما از ماژول base64 استفاده خواهیم کرد و با همان فایل تصویری آزمایش خواهیم کرد:
:Output
اکنون تصویر در پیام HTML جاسازی شده است و به عنوان یک فایل پیوست در دسترس نیست. پایتون تصویر jpg ما را رمزگذاری کرده است و اگر به تب HTML Source برویم، رشته داده تصویر طولانی را در img src مشاهده خواهیم کرد.
ارسال چندین ایمیل به گیرندگان مختلف و شخصی سازی آن ها نکته ویژه در مورد ایمیل ها در پایتون است. برای افزودن چندین گیرنده دیگر، می توانید آدرس آن ها را با کاما از هم جدا کنید، CC و BCC را اضافه کنید. اما اگر با ارسال ایمیل به صورت انبوه کار می کنید، پایتون با حلقه ها شما را نجات می دهد.
یکی از گزینه ها ایجاد پایگاه داده با فرمت .csv (فرض می کنیم در همان پوشه اسکریپت Python شما ذخیره شده باشد) است. ما اغلب نام خود را در نمونه های معاملاتی یا حتی تبلیغاتی مشاهده می کنیم. در اینجا نحوه ساخت آن با پایتون آورده شده است. بیایید لیست را در یک جدول ساده و فقط با دو ستون سازماندهی کنیم: نام و آدرس ایمیل. باید مانند مثال زیر باشد:
کد زیر فایل را باز می کند و سطر به سطر روی سطرهای آن حلقه می زند و مقدار {name} را از ستون “name” جایگزین می کند.
:Input
پس از اجرای اسکریپت، پاسخ زیر را دریافت می کنیم:
:Output
در صندوق ورودی Mailtrap ما دو پیام را می بینیم: یکی برای جان جانسون و دیگری برای پیتر پیترسون که به طور همزمان ارسال می شود:
وقتی برای ارسال ایمیل به گیرنده های واقعی آماده شدید، می توانید سرور تولید خود را پیکربندی کنید. همچنین به نیاز ها، اهداف و تنظیمات شما بستگی دارد: localhost یا هر SMTP خارجی.
یکی از محبوب ترین گزینه ها Gmail است، بنابراین بیایید نگاهی دقیق به آن بیندازیم. ما اغلب می توانیم عناوینی مانند “نحوه راه اندازی حساب Gmail برای توسعه” را مشاهده کنیم. در واقع این بدان معنی است که شما یک حساب Gmail جدید ایجاد خواهید کرد و از آن برای یک هدف خاص استفاده خواهید کرد.
برای اینکه بتوانید از طریق حساب Gmail خود ایمیل ارسال کنید، باید دسترسی به آن را برای برنامه خود فراهم کنید. می توانید به برنامه های کم امنیت اجازه دهید یا از پروتکل مجوز OAuth2 استفاده کنید. این روشی دشوارتر است اما به دلایل امنیتی همین روش توصیه می شود. به علاوه، برای استفاده از سرور Gmail باید بدانید:
اگر تمایل به سادگی دارید، می توانید از Yagmail ،Gmail / SMTP اختصاصی استفاده کنید. این کار ارسال ایمیل را بسیار آسان می کند. فقط مثال های بالا را با چند خط کد مقایسه کنید:
ما فقط گزینه های اساسی ارسال ایمیل با پایتون را برای توصیف طیف وسیعی از توانایی های آن نشان داده ایم. برای به دست آوردن نتایج عالی، توصیه می کنیم اسناد پایتون را مرور کنید و فقط با کد خود تست کنید!
مجموعه ای از چارچوب ها و کتابخانه های مختلف Python وجود دارد که ایجاد ظرافت و اختصاصی بودن برنامه ها را ایجاد می کند. به طور خاص، برخی از آن ها می توانند به بهبود تجربه شما در ساخت قابلیت ارسال ایمیل کمک کنند: محبوب ترین چارچوب ها عبارتند از:
موفق باشید و فراموش نکنید که هنگام ارسال ایمیل های خود در امان بمانید!
نمایش دیدگاهها
کد ها رو هم میزاشتید بهتر میشد