ارسال ایمیل با استفاده از تابع mail در PHP
یکی از امکاناتی که شما در اختیار دارید ارسال ایمیل با PHP میباشد. شما با استفاده از تابع ()mail در PHP میتوانید اقدام به ارسال ایمیل به کاربران خود کنید. این ایمیل ها را در شرایط مختلفی میتوانید ارسال کنید. برای مثال وقتی که کاربر نام کاربری خود را فراموش میکند، یا هنگامی که میخواهید به کاربر تاییدیه ثبتنام او را ارسال کنید. در این آموزش روش کامل کار با تابع mail در PHP را یاد میگیریم و میفهمیم که چطور میتوانیم با استفاده از PHP اقدام به ارسال ایمیل کنیم. پس با من همراه باشید.
چه زمانهایی باید ایمیل بفرستیم؟
زمانهای مختلفی است که ما میخواهیم در کدی که نوشتیم اقدام به ارسال ایمیل با PHP کنیم. برای مثال:
- زمانی که کاربر رمز عبور خود را فراموش کرده و میخواهیم لینک بازیابی کلمه عبور را برای کاربر بفرستیم.
- زمانی که کاربر ثبت نام موفقیت آمیز داشته و میخواهیم به او پیام خوش آمد ارسال کنیم.
- زمانی که قصد تایید ایمیل کاربر را داریم و میخواهیم یک لینک تایید برای کاربر ایمیل کنیم تا با آن لینک اقدام به تایید (Verify) حساب کاربری خود کند.
- هنگامی که میخواهیم بعد از ثبت سفارش کاربر، فاکتور سفارش را برای او ایمیل کنیم
و موقعیت های بسیار دیگری که در سیستمی که نوشتیم میخواهیم یک ایمیل برای کاربر ارسال کنیم. در ادامه با روش ارسال ایمیل با PHP آشنا میشویم و یاد میگیریم که چطور میتوانیم اینکار را انجام دهیم.
ارسال ایمیل با PHP
برای ارسال ایمیل با PHP راه ها و روش های مختلفی را میتوانیم اجرا کنیم. اما سادهترین راه، استفاده از تابع mail در php است. این تابع که بصورت پیشفرض در php وجود دارد، به شما کمک میکند که اقدام به ارسال ایمیل های مختلفی به کاربران سایتتان کنید. در ادامه میخواهیم روش کار با این تابع را یاد بگیریم:
تابع mail در php مقادیر مختلفی را قبول میکند. به کد زیر دقت کنید:
mail(to,subject,message,headers);
در پارامتر اول تابع mail، باید بجای to, آدرسی که میخواهیم برای آن ایمیل ارسال کنیم را بنویسیم. (این پارامتر ضروری است)
در پارامتر دوم و بجای subject, باید موضوع ایمیل را بنویسیم. (این پارامتر ضروری است)
در پارامتر سوم و بجای message, باید متن ایمیل را بنویسیم. (این پارامتر ضروری است)
پارامتر چهارم که headers هست نیز اطلاعاتی هست که همراه ایمیل باید ارسال کنیم. برای مثال یکی از چیزهایی که در قستم headers میتوانیم بنویسیم، آدرس ایمیل مبدا است (چه ایمیلی این ایمیل را فرستاده است) این پارمتر ضروری نیست اما اگر باشد بسیار خوب است.
با توجه به توضیحاتی که در بالا دادیم، میخواهیم یک کد ساده که یک ایمیل ساده ارسال میکند را بررسی کنیم:
<?php $to = "mehdi@khosravi.com"; $subject = "خوش آمدید"; $txt = "تبریک. ثبت نام شما با موفقیت انجام شد"; $headers = "From: info@yadify.com"; mail($to,$subject,$txt,$headers); ?>
در کد بالا، ما به آدرس mehdi@khosravi.com یک ایمیل با مشخصات زیر ارسال کردهایم:
- موضوع ایمیل (Subject): خوش آمدید
- متن ایمیل: تبریک. ثبت نام شما با موفقیت انجام شد
- ایمیل فرستندهی این ایمیل: info@yadify.com
حالا اگر این کد را روی یک سرور واقعی اجرا کنیم، میبینیم که به آدرس mehdi@khosravi.com یک ایمیل از info@yadify.com با مشخصات بالا ارسال شده است.
نکتهای که در خصوص تابع mail وجود دارد این است که حتما باید در یک سرور واقعی اجرا شود که کار کند. در غیر این صورت اگر این کد را روی localhost اجرا کنید، ایمیل ارسال نمیشود. برای کار با تابع mail نیاز به یک سرور واقعی به همراه IP یا دامنه دارید.
با استفاده از این کد شما میتوانید اقدام به ارسال یک ایمیل خیلی ساده با کمک PHP کنید. اما اگر بخواهید ایمیلهای حرفهای تر، پیشرفتهتر و زیباتری بسازید، روش های بهتر دیگری وجود دارد که در آموزش های PHP دیگر در آینده در یادیفای دربارهی آنها صحبت خواهیم کرد.
آیا ایمیل های انبوه را با PHP میفرستند؟
یک سوالی که ممکن است برایتان پیش بیاید این است که:
آیا کسب و کارهایی مثل یادیفای، دیجی کالا و… ایمیل های اطلاع رسانی و انبوه خود را با این روش میفرستند؟
جواب این سوال خیر است. برای ارسال ایمیل های انبوه اطلاع رسانی، تخفیف و… شرکت ها و کسب و کارها از سیستم ها و نرم افزارهای مخصوص بازایابی ایمیلی (Email Marketing) مثل aweber, mailchimp و… استفاده میکنند. تابع mail مخصوص ارسال ایمیل های ضروری و فوری است که قرار است یک کار سیستمی را انجام دهند.
در آینده در خصوص ارسال ایمیل با PHP مباحث پیشرفته تر و حرفهای تری را مطرح میکنیم.
[mailerlite_form form_id=1]
درباره مهدی خسروی
۸ سال پیش که یادگیری برنامه نویسی رو آغاز کردم، با یک مشکل بزرگ مواجه شدم: کمبود منابع آموزشی حرفهای و کاربردی به زبان فارسی. به همین دلیل، بعد از چندین سال فعالیت حرفهای در زمینهی برنامه نویسی، تصمیم گرفتم دانستهها و تجربیات خودم را با شما عزیزان به اشتراک بگذارم. پیشنهاد میکنم به آدرس yadify.com/gifts حتما سر بزنید :)
نوشته های بیشتر از مهدی خسرویمطالب زیر را حتما مطالعه کنید
8 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
دیدگاهتان را بنویسید لغو پاسخ
این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش میشوند.
توضیحات کامل و مفیدی بود
سلام من روی هاست دایرکت ادمین دقیقا همین کارها رو کردم اما انجام نشد لطفا کمکم کنید
سلام
اگر هاست شما اقدام به ارسال ایمیل نمیکنه به احتمال زیاد مشکل از سمت ارائه دهندهی هاستتون هست. با شرکتی که هاستتون رو از اون تهیه کردید تماس بگیرید و این مشکل رو باهاشون مطرح کنید.
ممنون از مقاله خوبتون کاربردی بود.
سلام
برای فرستادن پیامک باید چه کنیم؟
سلام احمد عزیز
برای اینکار باید بتونید با API سرویس پیامکی ارتباط برقرار کنید. سعی میکنم آموزش هایی رو در این زمینه منتشر کنم حتما 🙂
ممنون از این مطلب مفیدتون دمتون گرم کارمو راه انداخت
انبوه درسته نه انبوع مهندس
اوو ممنونم از شما سعید جان. اصلاح شد. مرسی بابت ریز بینیتون