ارسال و دریافت ایمیل یکی از مهم ترین ابزارهای ارتباطی دیجیتال به شمار می رود. به کمک سرویس ایمیل می توان به سادگی و از راه دور به ارسال و دریافت داده در بستر اینترنت پرداخت. به کمک سرویس ایمیل می توان در بستر اینترنت اشیا، داده های محیط نظیر دما، فشار، رطوبت و…. را ارسال نمود. در این آموزش به کمک یک کتابخانه کلیدی و کاربردی، می توانیم ایمیل ارسال کنیم. کتابخانه ESPMail بر روی برد ESP8266 قابل اجراست. به کمک این کتابخانه می توان به سادگی و بدون هیچ پیچیدگی، ایمیل ارسال کنیم. در ادامه تحلیل کتابخانه با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
نصب کتابخانه ESPMail
همانطور که اطلاع دارید، کتابخانه ها یکی از ابزارهای کلیدی و کاربردی در برنامه نویسی به شمار می روند. به کمک این ابزار، می توانیم توابع نوشته شده در فایلهایی به نام کتابخانه ذخیره کرده و سپس در پروژه های متعدد از آن استفاده کنیم. همانطور که پیشتر گفته شد، برای راه اندازی و کار با ماژول کتابخانه توسعه داده شده است. برای استفاده از این کتابخانه، ابتدا باید آن را نصب کنیم. برای نصب کتابخانه در محیط آردویینو، ابتدا مطابق تصویر زیر بر روی گزینه Tools و سپس Manage Libraries کلیک کنید.
پس از کلیک بر روی گزینه Manage Libraries، در صفحه ظاهر شده، در قسمت کادر جستجو، عبارت ESPMail را جستجو نموده و کتابخانه مشخص شده در تصویر را نصب نمایید.
الزامات و نکات فنی کتابخانه ESPMail
پس از نصب کتابخانه ESPMail، نوبت به بررسی الزامات و نکات فنی کتابخانه می رسد. توجه داشته باشید که کتابخانه ESPMail تنها بر روی پردازنده ESP8266 قابل اجراست. به عبارت دیگر این کتابخانه بر روی بردهای NODEMCU، ESP01، ESP12E و کلیه بردهای توسعه یافته بر مبنای تراشه ESP8266 قابل اجراست. توجه داشته باشید این کتابخانه بر روی تراشه ESP32 قابل اجرا نیست.
توابع کلیدی و کاربردی کتابخانه ESPMail
پس از بررسی الزامات و نکات فنی، نوبت به تحلیل توابع کلیدی و کاربردی می رسد. جدول زیر لیست توابع را به همراه ورودی ها نمایش می دهد.
شرح | ورودی | تابع |
این تابع ارتباط تراشه با کتابخانه را برقرار می کند. | بدون ورودی | begin |
این تابع می تواند موضوع ایمیل و فرستنده آن را تعیین کند. نام فرستنده و موضوع ایمیل توسط گیرنده مشاهده خواهد شد. | ورودی اول تعیین فرستنده
ورودی دوم تعیین موضوع ایمیل |
setSubject(“from@example.com”, “EMail Subject”)
|
به کمک این تابع می توان یک فایل را ضمیمه و ارسال کرد. ورودی اول نام فایل ضمیمه و ورودی دوم متن فایل است. | ورودی اول اسم فایل
ورودی دوم متن فایل |
addAttachment(“test.txt”, “This is content of attachment.”)
|
به کمک این تابع می توان متن ایمیل را تعیین کرد. متن ایمیل در ورودی قرار می گیرد. | ورودی از نوع رشته | setBody(“This is an example e-mail. “)
|
این تابع داده ها را به گیرنده ارسال می کند. در حقیقت این تابع به ایمیل فرستنده لاگین کرده و داده ها را ارسال می کند. در صورتیکه ارسال با موفقیت انجام شود، خروجی تابع ۰ خواهد شد. | ورودی اول نام سرویس ایمیل
ورودی دوم شماره پورت ایمیل ورودی سوم نام یوزرنیم ایمیل فرستنده ورودی چهارم رمز عبور ایمیل فرستنده |
send(“smtp.server.com”, 587, “your_smtp_user”, “your_smtp_password”)
|
اجرای یک نمونه برنامه
پس از بررسی توابع کلیدی و کاربردی، نوبت به اجرای یک نمونه برنامه با کتابخانه ESPMail می رسد. در برنامه زیر به یک آدرس ایمیل، متن و ضمیمه ارسال می شود.
#include "infiniteAverage.h" //اضافه کردن کتابخانه IAVG IA; //ایجاد یک شی از کلاس کتابخانه uint32_t lastTime = 0; //ایجاد یک متغیر void setup() { Serial.begin(115200); Serial.println(__FILE__); IA.reset(); //ریست اولیه IA.setDivideThreshold(1024); while (1) { IA.add(random(10000) * 0.0001); //اضافه کردن مقدار تصادفی و قرار دادن در لیست if (millis() - lastTime >= 500) //ایجاد زمان { lastTime = millis(); Serial.println(IA.count()); //نمایش تعداد اعداد موجود در لیست Serial.println(IA.average(), 7); //نمایش میانگین } } } void loop() { }
لوازم مورد نیاز
جمع بندی
در مجموعه آموزش های تحلیل و بررسی کتابخانه، این آموزش را به یکی از کتابخانه های کاربردی در آدروینو اختصاص دادیم. کتابخانه ESPMail یک کتابخانه بسیار کلیدی و کاربردی جهت ارسال ایمیل است. به کمک این کتابخانه و به کمک تنها چند تابع، می توانید بر روی برد ESP8266 ایمیل ارسال کنید. مطابق رویه معمول، ابتدا نصب کتابخانه و سپس الزامات فنی آن بررسی شد. در ادامه به تحلیل و بررسی توابع کلیدی و کاربردی پرداختیم. در نهایت با اجرای یک مثال، بحث را به پایان بردیم.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.