آموزش کامل PHP – قسمت 13 : ارسال ایمیل

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

پروژه ارسال ایمیل با php

در ابتدا بخش هایی را برای پروژه خود در نظر می گیریم:

  1. یک فیلد برای وارد کردن آدرس ایمیل مقصد
  2. یک فیلد برای وارد کردن نام ارسال کننده ایمیل
  3. یک فیلد برای وارد کردن موضوع ایمیل
  4. یک فیلد برای نوشتن متن ایمیل
  5. یک دکمه برای ارسال ایمیل
  6. یک دکمه برای ریست کردن فرم
  7. یک صفحه php که عملیات ارسال ایمیل را پردازش می کند

الگوریتمی که برای این پرژه در نظر گرفته ایم به شرح زیر می باشد:

  1. کاربر اطلاعات لازم را در فرمی وارد می کند
  2. اطلاعات به صفحه php که در بخش شماره 7 فوق گفتیم ارسال می شود
  3. در صفحه php چک می کنیم که آیا تمام فیلد ها، کامل پر شده اند یا خیر – اگر بله به مرحله بعد برود و اگر خیر به مرحله 1
  4. ارسال ایمیل با توجه به اطلاعات وارد شده کاربر توسط کد های php
  5. بررسی می شود که ایمیل با موفقیت ارسال شده یا خیر – اگر بله نمایش پیغام درستی به کاربر و اگر خیر پیغام نادرستی

حال پوشه ای به نام ایمیل برای پروژه ایجاد می کنیم و دو فایل به نام های index.php و send.php در آن می سازیم. فایل index فرم ارسال ایمیل و فایل send پردازشگر و ارسال کننده ایمیل می باشد. در فرم ارسال ایمیل فیلد های مورد نظر را قرار می دهیم که کد آن به شرح زیر است:

<form method="post" action="send.php">

email to: <input type="text" name="email"><br>

your name: <input type="text" name="name"><br>

subject: <input type="text" name="subject"><br>

message: <textarea name="message" rows="3" color="4"></textarea>

<input type="reset" value="reset">

<input type="submit" value="send">

</form>

سپس در فایل send.php کد های زیر را وارد کنید:

<?php

$mailto = trim ($_post ['email']);

$username = trim ($_post ['name']);

$subject = trim ($_post ['subject']);

$message = trim ($_post ['message']);

//merge name and message

$final_message = $username . ":" . $message;

 if ($mailto != "" && $username != "" && $subject != "" && $message != "") {

$email_send = mail ($mailto , $from_mail , $final_message);

if ($email_send) {

echo "your mail has been send successfully!"; }

else {

echo "sorry, there is problem in sendig mail, try again!"

} }

else {

echo "you most fill all fields!" go <a href="index.php">back</a>

} ?>

در کد بالا ابتدا مقادیری که کاربر در فرم وارد کرده را در متغیر هایی قرار داده ایم. سپس با استفاده از تابع trim پی اچ پی فاصله های اضافی اول و آخر هر فیلد را از بین برده ایم. با استفاده از دستورات if نیز الگوریتمی که توضیح دادیم را اجرا کرده ایم.

با استفاده از تابع mail اقدام به ارسال ایمیل می کنیم و سپس مقدار بازگشتی این تابع را در متغیر email_send قرار می دهیم. در صورتی که ارسال ایمیل موفق باشد تابع  mail، مقدار true را بر می گرداند و در غیر این صورت مقدار بازگشتی تابع false خواهد بود. بنابراین متغیر email_send نیز دارای همین دو مقدار است که با دستور if آن را بررسی کرده و پیغام مناسب را به کاربر نمایش داده ایم.

ما نام کاربر و متن ایمیل را ترکیب کرده و در متغیری به نام final_message قرار داده ایم.

تابع mail را می توان با تنظیمات و سفارشی سازی های زیادی مورد استفاده قرار داد. ما به ساده ترین شکل از آن استفاده کرده ایم که باید حداقل 3 آرگومان داشته باشد. همچنین به این نکته باید توجه کنید که برای استفاده از این تابع الزما نیاز نیست مقدار بازگشتی آن را برابر یک متغیر قرار دهیم. در واقع ما به این دلیل تابع را در برابر یک متغیر قرار دادیم تا از این طریق بتوانیم کنترل بیشتری بر روی عملیات داشته باشیم و پیام خطای مناسب را ایجاد کنیم.

با کمی تغییرات و زیباتر کردن کد بالا می‌توانید یک اسکریپت کاربرپسند و کاربردی‌تر ایجاد کنید. به عنوان تمرین از css و html به منظور زیباتر شدن فرم ارسال ایمیل و حتی صفحه ارسال ایمیل و نمایش پیام‌ها بهره ببرید. در صورتی که هر گونه سوالی در این مورد برایتان پیش آمده آن را در بخش نظرات اعلام کنید.

همچنین می‌توانید از آنچه که در این جلسه یاد گرفتید به منظور ایجاد فرم تماس با ما برای سایت خود استفاده کنید.