سرویسی که تازه باهاش آشنا شدم سرویس Mailgun.com که یه سرویس ارسال ایمیل مخصوص برنامه نویساست.بعد از ثبت نام در این سایت به شما اجازه ارسال ایمیل با استفاده از api های خودش رو میده.اگر سرویس تون رایگان باشه درماه میتونید ده هزار تا ایمیل بفرستید.بقیه قیمتاش هم توی سایتش هست.
توی این پست به صورت خیلی خلاصه میخوام ارسال ایمیل رو با این سرویس و کتابخانه ای که خودش نوشته آموزش بدم.
خب اول باید توی این سایت ثبت نام کنید.بعد از ثبت نام ایمیلتون رو تایید کنید.وقتی وارد سایت میشید توی کنترل پنل سایت یه چیزی شبیه عکس زیر میبینید.
اون قسمتایی که با قرمز مشخص شده رو بهش نیاز داریم.
مرحله بعدی دانلود کردن کتابخانه زیره :
فایلی که دانلود کردید بعد از اینکه از حالت فشرده خارجش کردید یه پوشه داره به نام vendor
به فایل index.php کناراین پوشه قرار بدین.و کدهای زیر رو داخلش بذارید :
require 'vendor/autoload.php'; use MailgunMailgun; $mg = new Mailgun("key-example"); $domain = "example.com"; # Now, compose and send your message. $mg->sendMessage($domain, array('from' => 'bob@example.com', 'to' => 'sally@example.com', 'subject' => 'The PHP SDK is awesome!', 'text' => 'It is so simple to send a message.'));
دقت کنید که به جای key-example اون api کدی که توی تصویر مشخص کردم رو کپی کنید. و در قسمت $domain هم مقدارش رو برابر با مقداد domain که بازم توی عکس (سمت راست تصویر) با قرمز مشخص کردم قرار بدید.
حالا با اجرای برنامه بالا یه ایمیل به ایمیلی که قسمت to نوشتین ارسال میشه.
خب تا اینجای کار که کار خاصی انجام ندادیم و مثال خودش بود.
اگر بخوایم یه ایمیل به صورت HTML ارسال کنیم باید به صورت زیر عمل کنیم :
$mg->sendMessage($domain, array('from' => 'domain@example.com', 'to' => 'phpro.ir@gmail.com', 'subject' => 'Hi', 'html' => 'Hello Dear
', ));
حالا اگر بخوایم به تعداد زیادی ایمیل بدیم دو راه داره.
اول اینکه کدی رو که بالا نوشتیم رو در یک حلقه foreach بذاریم.که زیاد فکر خوبی نیست.
مثال :
$emails = file('emails1.txt'); foreach($emails as $email){ $mg->sendMessage($domain, array('from' => 'exapmle@domain.com', 'to' => trim($email), 'subject' => 'Hi', 'html' => 'Hello Dear
', ) ); }
راه دوم اینه که ایمیل هارو به در قسمت bcc ایمیل بنویسیم و ارسال کنیم.مثل زیر
$emails = file('emails1.txt'); $emails = array_map('trim',$emails); $mg->sendMessage($domain, array('from' => 'exapmle@domain.com', 'to' => 'exapmle@domain.com', 'subject' => 'Hi', 'bcc' => implode(',',$emails) , 'html' => 'Hello Dear
', ));
دقت کنید که توی این روش حتما قسمت to باید یه ایمیل بنویسید وگرنه بهتون پیغام خطا میده.
اگر شما هم سرویس ایمیل خوبی میشناسین به بقیه معرفی کنید.
نظرات شما عزیزان:
برچسبها: