یه نویسنده

مقاله، کتاب، برنامه و ...

مقاله، کتاب، برنامه و ...

یه نویسنده

وبلاگی برای فعالیتهای پژوهشی و برنامه نویسی کامپیوتر، که شاید دفتر یادداشتی از دانسته‌های روزانه‌ی من باشد(شاید به‌کار شما هم بیاید). مطالبی که از دنیای کدباز جمع‌آوری میکنم و برای علاقه‌مندان این شاخه از فناوری انتشار میدهم. بیشتر نوشته‌های وبلاگ را برنامه‌نویسی‌php و سیستم‌عامل لینوکس تشکیل می‌دهند.

طبقه بندی موضوعی

آموزش کامل ارسال ایمیل توسط php در localhost

یکی از دردسرهای تست برنامه های php‌در هاست محلی امکان ارسال ایمیل هست. برای حل این مشکل باید تبدیل به میل سرور بشید یا از smtp کمک بگیرید. در این جا نحوه راه اندازی smtp در لینوکس رو آموزش میدم تا راه حلی باشه برای برنامه نویسان php‌که در از سیستم عامل لینوکس(معمولا بر حسب دبیان) استفاده میکنن. در این روش ما ابزار ssmtp رو نصب میکنیم و مقدار sendmail_path رو در فایل php.ini برابر با ssmtp قرار میدیم.

در ابتدا باید ابزار ssmtp رو نصب کنید:

sudo apt-get install ssmtp
برای کانفیگ ssmtp به مسیر زیر برید و اون رو برای کافیگ باز کنید

sudo nano /etc/ssmtp/ssmtp.conf
بعد از باز کردن فایل مقدارهای رو بصورت زیر تغییر بدید البته بعضی متغرها مثل root درش وجود داره که باید مقدار رو جلوش قرار بدید و بعضی متغیرها رو هم باید جدید بنویسید در هر صورت فایل فوق رو بصورت زیر تغییر بدید

#
# 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 هم رمز عبور ایمیل خودتون رو وارد کنید

بعد از این نوبت به کانفیگ کردن user برای ارسال ایمیل هست
sudo nano /etc/ssmtp/revaliases
بعد از باز کردن فایل فوق تغییرات زیر رو در اون وارد کنید
root:username@gmail.com:smtp.gmail.com:587
localusername:username@gmail.com:smtp.gmail.com:587
بجای username هم نام ایمیل خودتون رو بنویسید
در آخر نوبت به تغییر فایل php.ini و قرار دادن مقدار sendmail_path برابر با ssmtp هست برای این کار ابتدا فایل php.ini رو از مسیر زیر باز کنید

sudo nano /etc/php5/apache2/php.ini
رشته sendmail_path رو پیدا کنید و اون رو برابر با مقدار زیر قرار بدید

sendmail_path = /usr/sbin/ssmtp -t
و در آخر apache رو دوباره راه اندازی کنید
sudo service apache2 restart
حالا تمام ایمیل های شما از طریق smtp‌و سرور گوگل ارسال میشه

نظرات  (۳)

درود وقت بخیر مال من وقتی میزنم sudo apt-get install ssmtp 

اینو میزنه :

Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 libapache2-mod-php5 : Depends: apache2-api-20120211
                       Depends: apache2 (>= 2.4)
                       Depends: php5-common (= 5.5.30+dfsg-1+deb.sury.org~precise+1) but 5.3.10-1ubuntu3.21 is to be installed
 ssmtp : Depends: libgnutls-openssl27 but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

مشکلش چیه ؟ ممنون 
پاسخ:
تداخل نسخه ماٰژول ها بوجود اومده
راه حلش راحتش اجرا بر روی vm با ورژن بالاتر مثل 14.04 یا بروز رسانی apache به نسخه 2.4 یا بالاتر
درود خب اینو چطوری باید انجام بدم ..اپاچی نسخه جدید رو بخام نصب کنم باید ایا نسخه قدیمیشو حذف کنم یا همونو اپدیت کنم یا اوبونتو رو چطوری اپدیت کنم ممنون 
پاسخ:
http://serverfault.com/questions/527631/libapache2-mod-php5-uninstalled-after-update-impossible-to-put-back
http://ubuntuforums.org/showthread.php?t=2291854
سلام دوست عزیز
ممنون از آموزشی که قرار دادید...
من تمام مراحلی که شما فرمودید انجام دادم. اما مشکل ارسال ایمیل هنوز سر جای خودش باقی هست. و هیچ پیام خطایی هم نمایش داده نمیشه.
چه وقتی از دستور error_log و چه وقتی از دستور mail  استفاده می کنم. ایمیلی ارسال نمیشه..
فقط خروجی دستور mail‌  به صورت بولین false‌بر میگرده. 
من سیستم اوبونتو  ۱۶.۰۴ دارم و php 7
دارم روی لوکال کار می کنم و xampp  رو نصب کردم روی لوکال...
راهنمایی کنید ممنون میشم.
پاسخ:
سلام
باید سرویس smtp رو در gmail در اکانتتون فعال کنید

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی