135 اتصال لوکال هاست XAMPP به SMTP جی میل 1336

یکی از کارهایی که همه ی برنامه نویسان وب باهاش سروکار دارن ارسال ایمیل به کاربران در نقاط مختلف برنامه هست و تقریبا داخل هر برنامه ای ارسال ایمیل عملیه که کم و بیش اتفاق میوفته حالا بحث ما نحوه ارسال ایمیل در لوکال هاست XAMPP و هدفمون متصل کردن تابع پیش فرض ارسال ایمیل در PHP به نام ()mail به یک اکانت جی میل از طریق SMTP گوگل هست

برای عملی کردن ماجرا ما فقط به یک اکانت جی میل با دسترسی فعال "Less secure app access" نیاز داریم توجه داشته باشید که گوگل اکانتمون نباید قابلیت ورود دو مرحله ایش فعال باشه چون اجازه فعال کردن دسترسی "Less secure app access" رو نمیده و در ادامه چندین تغییر را در 2 فایل باید اعمال کنیم تا اتصالمون از لوکال هاست به سرور گوگل انجام بشه به همین سادگی! در انتهای مطلب هم یک اسکریپت PHP برای تست ایمیل براتون قرار میدم

1. تنظیمات جی میل در گوگل اکانت

مانند تصاویر زیر قابلیت "Less secure app access" را در گوگل اکانتی که می خواهید به عنوان ایمیل لوکال هاستتون ازش استفاده کنید فعال کنید

اعمال تنظیم اول در گوگل اکانت اعمال تنظیم دوم در گوگل اکانت

2. اعمال تغییرات در فایل های php.ini و sendmail.ini

از مسیر "\C:\xampp\php" سیستمتان درون فایل php.ini عبارت "[mail function]" را جستجو کنید و تغییرات زیر را جایگزین و اعمل کنید


SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = MY_GMAIL_ID@gmail.com
sendmail_path = "C:\xampp\sendmail\sendmail.exe -t"

از مسیر "\C:\xampp\sendmail" سیستمتان درون فایل sendmail.ini عبارت "[sendmail]" را جستجو کنید و تغییرات زیر را جایگزین و اعمل کنید


smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=MY_GMAIL_ID@gmail.com
auth_password=MY_GMAIL_PASSWORD
force_sender=MY_GMAIL_ID@gmail.com

3. ری استارت کردن localhost و تست ایمیل

جهت اجرای تغییرات جدید باید بلافاصله بعد از اعمال تغییرات بالا یکبار لوکال هاست خود را کاملا ری استارت کنید تا پیکربندی مجددا انجام شود حالا که تغییرات بالا رو اعمال کردید باید تابع پیش فرض ایمیل روی PHP به جی میل مورد نظرمون متصل شده باشه و از طریق SMTP گوگل برامون ایمیل رو به مقصد بفرسته با اسکریپت زیر میتونید چک کنید که آیا به سرور جی میل وصل شده اید؟


<?php
$to_email = "receipient@gmail.com";
$subject = "Test email to send from XAMPP";
$body = "Hi, This is test mail to check how to send mail from Localhost Using Gmail ";
$headers = "From: sender email";

if (mail($to_email, $subject, $body, $headers)) {
    // ارسال ایمیل موفقیت آمیز بود
    echo "Email successfully sent to $to_email...";
} else {
    // ارسال ایمیل با مشکل مواجه شد
    echo "Email sending failed!";
}
?>
برنامه نویسی PHP