SMTP چیست؟
smtp که مخفف عبارت Simple Mail Transfer Protocol می باشد همانطور که از نامش پیداست، یک پروتکل ارسال ایمیل است که معمولا در کنار پروتکلهای POP3 یا IMAP مورد استفاده قرار میگیرد. تفاوت موجود بین موارد گفته شده در این است که SMTP برای ارسال ایمیل مورد استفاده قرار میگیرد در حالی که POP3 و IMAP برای دریافت ایمیل مورد استفاده قرار میگیرند.
کد:
require_once "vendor/autoload.php"; $mail = new PHPMailer; //Enable SMTP debugging. $mail->SMTPDebug = 3; //Set PHPMailer to use SMTP. $mail->isSMTP(); //Set SMTP host name $mail->Host = "smtp.gmail.com"; //Set this to true if SMTP host requires authentication to send email $mail->SMTPAuth = true; //Provide username and password $mail->Username = "name@gmail.com"; $mail->Password = "super_secret_password"; //If SMTP requires TLS encryption then set it $mail->SMTPSecure = "tls"; //Set TCP port to connect to $mail->Port = 587; $mail->From = "name@gmail.com"; $mail->FromName = "Full Name"; $mail->addAddress("name@example.com", "Recepient Name"); $mail->isHTML(true); $mail->Subject = "Subject Text"; $mail->Body = "<i>Mail body in HTML</i>"; $mail->AltBody = "This is the plain text version of the email content"; if(!$mail->send()) { echo "Mailer Error: " . $mail->ErrorInfo; } else { echo "Message has been sent successfully"; }
علاوه بر مورد بالا یک فایده بزرگ استفاده از SMTP و استفاده از وب سرور دیگه مثل GMail این است که: فرض کنید هاست شما test.com هست و ایمیلی با آدرس name@gmail.com به مقصد toname@yahoo.com ارسال می کنید سرور یاهو آن ایمیل را جز اسپم قرار میدهد. چرا؟ چون پسوند gmail.com ولی از example.com ارسال شده است. ولی وقتی واقعا از سرور gmail ارسال بشود یاهو آنرا جزء اسپم قرار نمیدهد چون gmail برای یاهو معتبر است.

نمایش پیام های خطای محلی

$mail->ErrorInfo میتواند پیام خطای مربوط به ارسال ایمیل را در ۴۳ زبان مختلف نمایش بدهد. برای نمایش خطا در زبان های مختلف پوشه language را در پوشه پروژه تان کپی کنید.برای نمایش پیام خطا مثلا به زبان روسی زبان شی PHPMailer را با استفاده از متد زیر روی Russian تنظیم کنید:


کد:
$mail->setLanguage("ru");
همچنین این امکان وجود دارد که فایل زبان خودتان را در پوشه language قرار بدهید.