آموزش کامل ارسال ایمیل توسط php در localhost
مهرداد سیف زاده | جمعه, ۱۳ تیر ۱۳۹۳، ۰۳:۵۲ ب.ظ |
۴ نظر
یکی از دردسرهای تست برنامه های phpدر هاست محلی امکان ارسال ایمیل هست. برای حل این مشکل باید تبدیل به میل سرور بشید یا از smtp کمک بگیرید. در این جا نحوه راه اندازی smtp در لینوکس رو آموزش میدم تا راه حلی باشه برای برنامه نویسان phpکه در از سیستم عامل لینوکس(معمولا بر حسب دبیان) استفاده میکنن. در این روش ما ابزار ssmtp رو نصب میکنیم و مقدار sendmail_path رو در فایل php.ini برابر با ssmtp قرار میدیم.
در ابتدا باید ابزار ssmtp رو نصب کنید:
sudo apt-get install ssmtp
برای کانفیگ ssmtp به مسیر زیر برید و اون رو برای کافیگ باز کنیدبعد از باز کردن فایل مقدارهای رو بصورت زیر تغییر بدید البته بعضی متغرها مثل root درش وجود داره که باید مقدار رو جلوش قرار بدید و بعضی متغیرها رو هم باید جدید بنویسید در هر صورت فایل فوق رو بصورت زیر تغییر بدیدsudo nano /etc/ssmtp/ssmtp.conf
# # Config file for sSMTP sendmail # # The person who gets all mail for userids < 1000 # Make this empty to disable rewriting. root=your-full-gmail-address # The place where the mail goes. The actual machine name is required no # MX records are consulted. Commonly mailhosts are named mail.domain.com mailhub=smtp.gmail.com:587 # Where will the mail seem to come from? #rewriteDomain= # The full hostname hostname=your-full-gmail-address # Are users allowed to set their own From: address? # YES - Allow the user to specify their own From: address # NO - Use the system generated From: address FromLineOverride=YES UseSTARTTLS=YES AuthUser=your-gmail-username-here AuthPass=your-gmail-password-here
- در جلوی root نام کامل آدرس ایمیل gmail خودتون رو بنویسید مثلا: mehrdadSeifzadeh@gmail.com
- در جلوی hosrname نیز نام کامل ایمیل خودتون رو وارد کنید
- AuthUser هم نام کامل ایمیل خودتون
- AuthPass هم رمز عبور ایمیل خودتون رو وارد کنید
بعد از باز کردن فایل فوق تغییرات زیر رو در اون وارد کنیدsudo nano /etc/ssmtp/revaliases
بجای username هم نام ایمیل خودتون رو بنویسیدroot:username@gmail.com:smtp.gmail.com:587 localusername:username@gmail.com:smtp.gmail.com:587
در آخر نوبت به تغییر فایل php.ini و قرار دادن مقدار sendmail_path برابر با ssmtp هست برای این کار ابتدا فایل php.ini رو از مسیر زیر باز کنید
رشته sendmail_path رو پیدا کنید و اون رو برابر با مقدار زیر قرار بدیدsudo nano /etc/php5/apache2/php.ini
و در آخر apache رو دوباره راه اندازی کنیدsendmail_path = /usr/sbin/ssmtp -t
حالا تمام ایمیل های شما از طریق smtpو سرور گوگل ارسال میشهsudo service apache2 restart