سیم کارت GSM - GPRS

راه اندازی و کار با ماژول SIM800L بخش هشتم: ارسال و دریافت ایمیل

getting-started-with-sim800l-sending-email-with-at-command-digispark
نوشته شده توسط معین صابری

در سلسله آموزش های ماژول SIM800L، در این قسمت به بررسی قابلیت ارسال و دریافت ایمیل به کمک این ماژول می پردازیم. ماژول مخابراتی SIM800L، قادر است تا با اتصال به شبکه موبایلی کشور، به ارسال و دریافت پیامک و برقراری تماس دو طرفه صوتی بپردازد. از دیگر امکانات این ماژول می توان به قابلیت اتصال به شبکه اینترنت اشاره نمود. در قسمت های پیشین در رابطه با چگونگی اتصال به اینترنت، برقراری ارتباط FTP با سرور جهت آپلود و یا دانلود فایل و ایجاد ارتباط با پروتکل HTTP درقسمت های پیشین به طور مفصل صحبت کردیم. در این آموزش قصد داریم تا با توجه به پشتیبانی ماژول SIM800L از پروتکل SMTP، به ارسال و دریافت ایمیل از طریق این ماژول بپردازیم. در ادامه این آموزش با مرجع تخصصی ماژول سیم کارت به زبان فارسی، دیجی اسپارک همراه باشید.

 


پروتکل SMTP: معرفی، تعریف و کاربرد


پروتکل SMTP، یک پروتکل اینترنتی جهت ارسال ایمیل است. عبارت SMTP مخفف Simple Mail Transfer Protocol به معنای پروتکل ارسال ساده ایمیل است. این پروتکل که در سال ۱۹۸۲ معرفی و عرضه گردید، تاکنون مورد استفاده قرار گرفته است. همه روز بیش از هزاران و یا حتی میلیون ها ایمیل در سرتاسر جهان ارسال و دریافت می شود. از این رو این پروتکل، یکی از مهم ترین و کاربردی ترین پروتکل ها در زمینه انتقال پیام الکترونیک، به شمار می رود. در طرف دیگر، پروتکل POP3 وظیفه دریافت پیام ها را بر عهده دارد.

ماژول SIM800L، از پروتکل SMTP جهت ارسال پیام و پروتکل POP3 جهت دریافت پیام نیز پشتیبانی می کند. جهت ارسال و دریافت ایمیل در ماژول SIM800L، می بایست از فرامین AT-Command استفاده کنیم. در قسمت های بعدی، به نحوه ارسال و دریافت ایمیل در ماژول SIM800L، می پردازیم.

 


ارسال ایمیل با ماژول SIM800L


در این قسمت به بررسی نحوه ارسال ایمیل به کمک ماژول SIM800L می پردازیم. همانطور که اطلاع دارید، کلیه قابلیت ها و امکانات ماژول SIM800L، از طریق فرامین AT اجرا می شوند. در این قسمت با ارسال فرامین AT، به ارسال ایمیل می پردازیم. پیش از هر چیز، برای استفاده از جیمیل در این روش، می بایست تنظیمات امنیتی ایمیل خود را روی کمترین دسترسی قرار دهید. برای این منظور، با ورود به این لینک، مطابق تصویر، تنظیمات امنیتی را روی کمترین قرار دهید.

مطابق تصویر فوق، کلید تنظیمات امنیتی کمتر را فعال کنید. در نظر داشته باشید که چنانچه تایید دو عاملی را فعال کرده باشید، امکان فعال سازی گزینه فوق وجود نخواهد داشت. در ادامه، به بررسی نحوه ارسال ایمیل می پردازیم. در قدم نخست، به کمک دستور زیر، مد ارسال و دریافت ایمیل را فعال می کنیم.

پس از این مرحله، می بایست مدت زمان انتطار برای پاسخ از طرف سرور را به کمک دستور زیر، فعال کنیم.

مطابق دستور فوق، مدت زمان انتظار یا Time Out برابر با ۳۰ ثانیه انتخاب شده است. در مرحله بعدی، می بایست سرور ایمیل و پورت آن را تعریف کنیم. مطابق تنظیمات ارائه شده توسط گوگل، پورت SSL برای ارسال ایمیل با شماره ۴۶۵ و آدرس میل سرور، SMTP.GMAIL.COM است. بنابراین، این پارامترها به کمک دستئر زیر تعریف می شوند.

با توجه به اینکه قصد برقراری ارتباط به صورت SSL را داریم، این مورد به صورت زیر تنظیم می شود.

در ادامه، می بایست اطلاعات مربوط به نام کاربری و پسورد خود را تنظیم نماییم. نام کاربری شما، همان آدرس ایمیل شما و پسورد نیز همان رمیز عبور شماست. البته نام کاربری را هم میتوانید به صورت آدرس کامل، به عنوان مثال test@gmail.com و هم بدون @ و به صورت test ثبت کنید. در ادامه، به صورت زیر عمل می کنیم.

در قسمت بعدی، نیاز است تا ایمیل ارسال کننده را با دستور زیر، تعیین کنیم. در حقیقت دستور زیر تعیین می کند که ایمیل از طرف چه کسی و با چه نام کاربری در حال ارسال است.

در مرحله بعدی، می بایست گیرنده ایمیل را تعیین کنیم. در این آموزش ما قصد داریم تا یک ایمیل به خود ارسال کنیم، بنابراین مطابق دستور زیر، آدرس ایمیل خود را به عنوان گیرنده تعیین می کنیم.

در قسمت بعدی می بایست موضوع ایمیل تعیین شود. ما در اینجا عبارت TEST را به عنوان موضوع انتخاب کرده و مورد را به صورت زیر، تنطیم می کنیم.

در گام بعدی، تعداد کاراکترهای متن پیام، به کمک دستور زیر تعیین می شود.

پس از ارسال دستور فوق با ماژول، با عبارت DOWNLOAD به معنای آمادگی ماژول جهت دریافت متن پیام، رو به رو می شویم. با توجه به عدد ۵، می بایست ۵ کاراکتر به عنوان متن پیام، تعیین شود. ما عبارت SALAM را به عنوان متن پیام انتخاب و ارسال می کنیم. در نهایت با دستور زیر، ایمیل را ارسال می کنیم.

در این لحظه می بایست کمی صبر کنیم تا ایمیل به مقصد، ارسال شود. چنانچه ایمیل با موفقیت ارسال شود، عبارت زیر از سوی ماژول، در سریال مانیتور نمایش داده می شود.

در زیر تصویر از روال و چگونگی کار را مشاهده می نمایید.

 

مطابق تصویر فوق، چنانچه با ارسال دستور AT+SMTPSEND با کدی غیر از کد ارسال موفقیت آمیز رو به رو شدید، یک یا دو بار دیگر اقدام به ارسال دستور کرده تا پیام ارسال شود. چنانچه پس از چند بار ارسال این دستور هنوز با ارسال پیام مشکل دارید، تنظیمات را مجددا بررسی کنید. در صورت ارسال موفقیت آمیز، ایمیل را دریافت کرده و می توانیم مشاهده نماییم.

 


ارسال ایمیل به همراه Attachment


در این قسمت، به بررسی نحوه ارسال ایمیل به همراه یک فایل پیوست شده یا همان Attachment می پردازیم. مراحل ارسال ایمیل به همراه فایل پیوست دقیقا مشابه مراحل ایمیل متنی بدون فایل پیوست است. تنها تفاوت، ارسال دستور مربوط به ارسال ایمیل به صورت فایل پیوست، به صورت زیر است.

مطابق دستور فوق، عبارت test.txt تعیین کننده نام فایل است. پس از این دستور، به کمک دستور AT+SMTPSEND پیام را ارسال می کنیم. پس از چند لحظه، عبارت زیر از طرف سرور ارسال می شود.

عبارت ۱۳۶۰ در پاسخ سرور، ماکزیم حجم فایل به بایت را بیان می کند. در عبارت فوق، پاسخ سرور نشان می دهد که بیشنیه حجم فایل برای ارسال، ۱۳۶۰ بایت است. پس از این قسمت، به کمک دستور زیر، می بایست تعداد بایت های فایل را تعیین کنیم. ما در این قسمت عبارت سلام با ۵ بایت را انتخاب می کنیم.

پس از ارسال دستور فوق، ماژول عبارت زیر را بر می گرداند. در این لحظه عبارت SALAM را به ماژول ارسال کرده و بعد از چند لحظه، پاسخی به صورت +SMTPFTP: 1,1360 ارسال می کند. در نهایت، با دستور زیر، ارتباط با وب سرور ایمیل قطع می گردد.

 

همانطور که در تصویر فوق مشاهده می کنید، ایمیل حاوی فایل، با نام tmp.txt دریافت شده که با دانلود فایل، متن SALAM در آن مشاهده می شود.

 


دریافت و خواندن ایمیل


در این قسمت به بررسی نحوه خواندن ایمیل های دریافتی می پردازیم. بدین منظور، مشابه مراحل قبلی، می بایست ابتدا اینترنت را با دستور زیر فعال کنید.

با اتصال به اینترنت، ماژول دستور OK را بر می گرداند. در این مرحله دستورات مربوط به خواندن متن پیام را می بایست برای ماژول، ارسال کنیم. همانطور که اطلاع دارید، پروتکل دریافت ایمیل، از نوع POP3 است. مطابق تنظیمات گوگل، نام وب سرویس دریافت ایمیل POP.GMAIL.COM با پورت ۹۹۵ به صورت SSL است.

در ادامه، مشابه روش ارسال ایمیل، می بایست مد ایمیل به صورت زیر فعال سازی شود.

در مرحله بعدی، دقیقا مشابه مرحله ارسال ایمیل، بازه زمانی پاسخ سرور(Time Out) و فعال سازی SSL، به ترتیب دستورات زیر فعال می گردد.

پس از ارسال دستورات فوق، می بایست وب سرور ایمیل، نام کاربری و رمز عبور را به کمک دستور زیر، تعیین کنیم.

در نهایت، به کمک دستور زیر، می بایست به وب سرور جیمیل، لاگین کنیم.

با ارسال دستور فوق به ماژول، چنانچه ارتباط با سرور موفقیت آمیز بوده باشد، ماژول عبارت زیر را بر می گرداند.

در مرحله بعدی، می بایست شماره ایمیلی که قصد خواندن آن را داریم، تعیین کنیم. این شماره به ترتیب از اولین ایمیل به بعد، با یک شروع می شود. برای خواندن نخستین ایمیل، می بایست شماره آن در دستور زیر، در پارامتر دوم قرار گیرد. به عنوان مثال، برای خواندن نخستین ایمیل، به صورت زیر عمل می کنیم.

در پاسخ به دستور فوق، ماژول عبارت زیر را بر میگرداند. عدد ۱۵۵۴ به معنای بیشینه بایت قابل خواندن توسط ماژول است.

توجه داشته باشید که عبارت فوق چندین بار از طرف ماژول برگردانده شده و شما می بایست بلافاصله دستور زیر را به ماژول ارسال کنید.

عدد ۱۴۶۰ در عبارت فوق، بیانگر، تعداد بایتی است که قصد خواندن داریم. پس از این دستور، متن پیام در سریال مانیتور به نمایش در می آید. در نهایت، به کمک دستور زیر، از وب سرور ایمیل، logout میکنیم.

 

 


وسایل مورد نیاز


ماژول SIM800L

باتری 

مبدل کاهنده ولتاژ LM2596(در صورت تغذیه از طریق آداپتور )

مبدل سریال به USB

 


جمع بندی


در قسمت هشتم از سلسله آموزش های ماژول SIM800L، به قابلیت ارسال و دریافت ایمیل توسط این ماژول پرداختیم. برای ارسال ایمیل در شبکه اینترنت، از پروتکل SMTP و برای دریافت از پروتکل POP3 استفاده می گردد. ماژول SIM800l از هر دوی این پروتکل ها پشتیبانی می کند. در این آموزش، به کمک فرامین AT، به ارسال و دریافت ایمیل پرداختیم. در ادامه، به کمک این ماژول، ایمیلی با فایل پیوست ارسال کرده و درنهایت اقدام به خواندن ایمیل های دریافتی، نمودیم.

 

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند می‌توانید از همین طریق اطلاع رسانی کنید.

 

درباره نویسنده

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

تبادل نظر و رفع عیب با ثبت دیدگاه

۱۴ دیدگاه

  • سلام خداقوت آموزش کامل و مشکل گشایی بود.
    میخواستم بدونم با این روش میشه که به ماژول سیمکارت بگیم اگر فلان اتفاق افتاد، فلان ایمیل را بفرسته؟

    • عرض احترام حضور شما
      بله، کاملا امکان پذیر خواهد بود. برای این مورد می بایست برنامه نویسی صورت گرفته و از بردهای اردوینو و یا سایر میکروکنترلرها استفاده گردد.

  • سلام و تشکر از آموزش خوبتون
    من تمام مراحل بالا رو گام به گام طی کردم و امنیت اکانت جیمیلم رو کاهش دادم. اما متاسفانه در آخر و موقع ارسال ایمیل دائما با خطای
    SMTPSEND: 63+
    مواجه میشم و لذا ایمیل ارسال نمیشه !
    ممنون میشم راهنمایی بفرمایید؟

    • سلام و متشکرم از شما
      ۱-آیا قبل از ارسال دستورات ایمیل، دستور AT+SAPBR=1,1 را جهت فعال سازی اینترنت ماژول ارسال کرده اید؟
      ۲- بار دیگر تظیمات ایمیل و به خصوص رمز عبور را کنترل و بررسی نمایید.

      • سلام مجدد و تشکر از پاسختون
        بله دستور AT+SAPBR=1,1 و همچنین آی پی داینامیکی که در اختیارمون قرار داد رو چک کردم
        ال ای دی های سخت افزار به درستی چشمک می زنه و همه ی تنظیمات مربوط به یوزر و پسورد ایمیل هم درسته.
        وقتی دستور AT+EMAILSSL=1 رو ارسال می کنم ماژول ERROR بر میگردونه شاید دلیل عدم ارسال ایمیل هم همین مورد باشه (در حالی که ماژول SSL رو پشتیبانی می کنه)
        ممنون میشم راهنمایی بفرمایید چطور ارور مربوط به SSL رو حل کنم چون با حل این موضوع قطعا مشکل ارسال ایمیل هم حل میشه.
        با تشکر

        • خواهش می کنم
          در پاسخ به دستور AT+EMAILCID=1 چه پیامی از ماژول دریافت می شود؟

          • به جز کامند EMAILSSL ، ماژول در پاسخ به کلیه کامند های دیگر ، بدون مشکل OK برمیگرداند.
            به همین خاطر خدمتتون گفتم اگر ارور SSL حل بشه ، دیگر تفاوتی با مراحل مطرح شده در آموزش وجود نخواهد داشت و مشکل ارسال ایمیل هم حل می شود.

            • لطفا این دستور را برای ماژو ارسال کرده و نتیجه آن را در اینجا قرار دهید. این دستور ورژن فریمور را اعلام می کند.:
              AT+GMR

              • تشکر از پاسختون
                پاسخ ماژول این هست :
                ۱۴۱۸B02SIM808M32_BT_20160513_1400
                (در سایت سیم کام نوشته شده این ماژول پشتیبانی از SSL رو داره)
                با تشکر

                • با توجه به پاسخ دریافتی، ماژول شما از نوع SIM808 است. حال آنکه ماژول استفاده شده در این آموزش SIM800L است. در کنار این، ظاهرا نسخه فریمور ماژول شما از SSL پشتیبانی نمی کند. به این منظور می بایست فریمور ماژول را آپدیت کنید تا بتوانید از قابلیت SSL آن بهره گیرید.

          • به جز دستور AT+EMAILSSL=1 ، در پاسخ به دیگر کامند ها بدون هیچ مشکلی OK برمیگرداند.
            به همین خاطر عرض کردم اگر مشکل این کامند حل بشه ، مشکل ارسال ایمیل هم حل خواهد شد چون دیگه هیچ تفاوتی با گام های مطرح شده در آموزش وجود نخواهد داشت.

              • سلام مجدد و با تشکر از راهنمایی شما.
                همانطور که فرمودید ، مشکل از فرم ور ماژول بود که پس از آپدیت ، خطای SSL و SMTPSEND: 63+ برطرف و ایمیل با موفقیت ارسال گردید.
                پاینده باشید.