حل مشکل ارسال ایمیل در لوکال هاست (localhost)


نویسنده:
سه شنبه 20 اسفند 1398
ارسال ایمیل در لوکال هاست

اگر یک توسعه‌دهنده وب باشید، حتما با نرم‌افزار‌های لوکال هاست (xampp یا wamp یا…)  کار کرده‌اید. و اگر با این نرم‌افزارها کار کرده‌اید، حتما با مشکل ارسال ایمیل در لوکال هاست دست و پنجه نرم کرده‌اید!

یکی از مواردی که تمام برنامه‌نویسان تحت وب با آن خیلی سروکار دارند، ارسال ایمیل به کاربران است، و این امر در نرم افزار‌های لوکال هاست بصورت پیشفرض امکان پذیر نیست.

از آنجا که ما تمام برنامه‌های خود را در لوکال هاست توسعه می‌دهیم و آن‌ها را تست و خطایابی (Debug) می‌کنیم، مشکل ارسال ایمیل در لوکال هاست برای ما برنامه‌نویسان وب مشکل بسیار بزرگی محسوب می‌شود. اما سوال اصلی اینجاست، مشکل از چیست و آیا راه حلی دارد؟ بله. لطفا با ما همراه باشید تا به حل این مشکل بپردازیم.

مشکل ارسال ایمیل در لوکال هاست از چیست؟

همانطور که می‌دانید سرور‌ها با استفاده از پروتکل SMTP که مخفف عبارت Simple Mail Transfer Protocol است، اقدام به ارسال ایمیل به سرور‌های دیگر می‌کنند. پس برای اینکه یک سرور بتواند ایمیلی ارسال کند باید بتواند به خوبی با این پروتکل متصل باشد و اقدامات لازم را انجام دهد.

حال سوال اینجاست که لوکال هاست ما به چه پورتی (port) برای ارسال ایمیل متصل است؟ به هیچ پورتی! پس طبیعتا نمی‌تواند ایمیلی ارسال کند. مشکل اصلی هم دقیقا همین‌جاست. برای ارسال ایمیل از طریق لوکال هاست ما باید پروتکل SMTP را برای لوکال هاست خود تنظیم کنیم.

تنظیم پروتکل SMTP در لوکال هاست

برای تنظیم پروتکل SMTP در لوکال هاست، ابتدا به مسیر نصب لوکال هاست‌ خود بروید و درون پوشه php به‌دنبال فایلی با نام php.ini باشید. در این فایل کل تنظیمات مربوط به پیکربندی زبان PHP وجود دارد که می‌توانید آنها را شخصی‌سازی کنید.

فایل php.ini را با یک ادیتور (notepad یا هرچیز دیگر)  باز کنید و با استفاده از کلید‌های ترکیبی Ctrl+F عبارت [mail function] را در این فایل پیدا کنید.

در ادامه این عبارت می‌توانید دستور‌های زیر را پیدا کنید، که به ترتیب باید مقادیر صحیح را برای آنها قرار دهید. در این مثال ما مقادیر مربوط به ارسال ایمیل با استفاده از اکانت جیمیل را بررسی می‌کنیم:

SMTP = smtp.gmail.com
smtp_port = 587
sendmail_from = my-gmail-id@gmail.com
sendmail_path = “\”C:\xampp\sendmail\sendmail.exe\” -t”

در خط اول باید آدرس سرور SMTP را وارد کنید که ما مقدار smtp.gmail.com را تنظیم کردیم که آدرس سرور SMTP مربوط به اکانت‌های gmail است.

در خط دوم باید شماره پورت SMTP را وارد کنید. این شماره در سرور‌های مختلف متفاوت است، در این مثال چون از سرور جیمیل استفاده می‌کنیم عدد 587 را وارد کردیم که شماره پورت SMTP سرور جیمیل است.

در خط سوم باید آدرس ایمیل خود را وارد کنید که به اصطلاح ایمیل‌های ارسالی از طرف آن ایمیل ارسال شوند.

در خط چهارم باید آدرس فایل sendmail.exe را به فایل php.ini معرفی کنیم. در اینجا کافیست تا اگر لوکال‌هاست خود را در مسیر دیگری نصب کردید. این مسیر را ویرایش کنید.

خب تا اینجا تنظیمات مربوط به فایل php.ini تمام شد. اما این تنظیمات فقط برای ارسال ایمیل با استفاده از زبان PHP لازم بود. تنظیمات اصلی در جای دیگری است. به مسیر نصب لوکال هاست رفته و فایل sendmail.ini که در پوشه sendmail قرار دارد را با یک ادیتور متن باز کنید.

تمام کدهای درون این فایل را پاک کرده و کد زیر را در آن قرار دهید:

[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

همانطور که مشاهده می‌کنید، آدرس سرور (smtp_server)، آدرس پورت (smtp_port)، آدرس جیمیل خود (auth_username و force_sender) و همچنین پسورد جیمیل خود (auth_password) را برای ارسال ایمیل در لوکال هاست تنظیم کرده‌ایم. مقادیر مربوط به error_logfile و debug_logfile را می‌توانید بدون تغییر بگذارید.

تمام شد! حال می‌توانید در پروژه‌های خود با خیال راحت به ارسال ایمیل در لوکال هاست بپردازید.

نکته: بعد از اتمام کار حتما یکبار لوکال هاست خود را Restart کنید تا تنظیمات جدید اعمال شوند.

توجه: احتمالا گوگل به شما اجازه ارسال ایمیل از طریق دسترسی به پورت smtp را نمی‌دهد (بخاطر مسائل امنیتی). اما شما می‌توانید در تنظیمات اکانت گوگل خودتان با رفتن به بخش security و از قسمت less secure app access این اجازه را به نرم‌افزار‌های دیگر بدهید تا با استفاده از پورت smtp به اکانت گوگل شما متصل شوند.

تنظیمات اکانت گوگل
مرحله اول) رفتن به تنظیمات اکانت گوگل
تنظیمات Less Secure app access
مرحله دوم) روشن کردن گزینه Less secure app access

امیدوارم این آموزش کوتاه ولی کاربردی برای شما توسعه‌دهندگان مفید باشد. لطفا سوالات خود در این زمینه را در قسمت نظرات همین صفحه با ما درمیان بگذارید.

مطالب زیر را حتما بخوانید

تنظیم دامنه مجازی روی لوکال هاست

با تنظیم دامنه روی لوکال هاست می‌توانید برای دسترسی به لوکال هاست به جای وارد کردن مسیر دایرکتوری در مرورگر،...

سرور مجازی چیست؟ نحوه ارتباط با سرور مجازی به چه صورت است؟

نحوه ارتباط با سرور مجازی کار بسیار ساده‌ای است و مهارت چندانی نیاز ندارد. همانطور که می‌دانید امروزه کامپیوترها و...

آموزش کامل مدیریت سرور مجازی برای تازه‌کارها

مدیریت سرور مجازی یکی از تخصص‌هایی است که اگر دوست دارید در حوزه دیجیتال فعالیت کنید می‌تواند به دردتان بخورد....

بررسی تفاوت فرانت اند و بک اند در طراحی وب به صورت جامع

در این مقاله تفاوت فرانت اند و بک اند را با هم بررسی خواهیم کرد. اگر یک کاربر مبتدی کامپیوتر...

دیدگاهتان را بنویسید

6 پاسخ به “حل مشکل ارسال ایمیل در لوکال هاست (localhost)”

  1. فردریک آخر گفت:

    سلام خسته نباشید. بعد از انتقال سایت به هاست اصلی باید رفت این تنظیمات را بهم زد؟؟؟

  2. مینا گفت:

    چرا نظرات مخالف رو حذف می کنید؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
    واقعا درست نیست. یه عالمه وقت آدم گرفته میشه، راه حلی که گفتی کار هم نمی کنه. اصلاح کن وقت مردم تلف نشه.

    • دوست عزیز نظر شما که در سایت تایید شده و نمایش داده میشه!!! فقط به علت تعداد زیاد کامنت‌ها کمی منتشر شدنشون در سایت طول میکشه.
      برای این آموزش‌ها وقت صرف شده و مراحل تست شدن اگر به ترتیب و درست انجام بدید مشکلتون حل میشه.

  3. مینا گفت:

    مشکل من حل نشد

  4. carpil گفت:

    دمت گرم مشکلمو حل کردی

دیدگاهتان را بنویسید