سبد (0)

تبلیغات

ارسال ایمیل در PHP

ارسال ایمیل در PHP

Wiki

در PHP با استفاده از تابع ()mail می توان از داخل یک اسکریپت ایمیل ارسال کرد.

نحوه استفاده:

mail(to,subject,message,headers,parameters)

پارامتر توضیحات
to

الزامی است، دریافت کننده یا دریافت کنندگان ایمیل را مشخص می کند.

subject

الزامی است، موضوع ایمیل را مشخص می کند. توجه داشته باشید که این پارامتر Enter را قبول نمی کند(n\)

message

الزامی است، متن ایمیل را مشخص می کند.

headers

اختیاری است، headerهای دلخواه مانند From,CC,BCC و غیره را مشخص می کند، هر کدام از این Headerها باید با کاراکتر "n\" یا "r\" از یکدیگر جدا شوند

parameters

اختیاری است، یک پارامتر اضافی برای برنامه ارسال ایمیل مشخص می کند.

توجه: برای تغییر تنظیمات پیکربندی ارسال ایمیل می توانید از فایل php.ini استفاده کنید، احتمالاً اگر می خواهید مطالب بیشتری راجع به توابع ارسال ایمیل بدانید از لینک روبرو استفاده کنید:

مثال: در مثال زیر، یک متن ساده را ارسال کرده ایم:

<?php
$to = "این آدرس ایمیل توسط spambots حفاظت می شود. برای دیدن شما نیاز به جاوا اسکریپت دارید";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "این آدرس ایمیل توسط spambots حفاظت می شود. برای دیدن شما نیاز به جاوا اسکریپت دارید";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
echo "Mail Sent.";
?>


فرم ارسال ایمیل

Wiki

همان طور که می دانید با استفاده از دستور echo می توان هر متغیر یا رشته ای را چاپ کرد، این رشته می تواند تگ های HTML باشد، ایجاد فرم HTML از این طریق feedback-form نامیده می شود، به مثال زیر برای ارسال ایمیل توجه کنید:

<html>
<body>

<?php
//اگر تکس باکس ایمیل پرشده باشد،ایمیل ارسال می شود
if (isset($_REQUEST['email']))
  {
  //ارسال ایمیل
  $email = $_REQUEST['email'] ;
  $subject = $_REQUEST['subject'] ;
  $message = $_REQUEST['message'] ;
  mail("این آدرس ایمیل توسط spambots حفاظت می شود. برای دیدن شما نیاز به جاوا اسکریپت دارید", "$subject",
  $message, "From:" . $email);
  echo "Thank you for using our mail form";
  }
else
//اگر تکس باکس ایمیل پرنشده باشد، فرم ارسال، نمایش داده می شود
  {
  echo "<form method='post' action='mailform.php'>
  Email: <input name='email' type='text' /><br />
  Subject: <input name='subject' type='text' /><br />
  Message:<br />
  <textarea name='message' rows='15' cols='40'>
  </textarea><br />
  <input type='submit' />
  </form>";
  }
?>

</body>
</html>

مثال بالا چه طور کار می کند:

  • ابتدا بررسی می کند که آیا فیلد ورودی email پر شده است یا نه
  • اگر پرنشده است(مثل وقتی که صفحه تازه دیده می شود) فرم HTML را نمایش می دهد
  • اگر پر شده است(بعد از اینکه فرم پر شده) email را ارسال می کند

نکته: این ساده ترین راه برای ارسال email است، اما ایمن نیست. در فصل بعد درمورد آسیب پذیری scriptهای ارسال ایمیل و اینکه چه طور ورودی کاربر را برای ایمن تر کردن آن معتبر کنیم، توضیح داده شده است.

برای مشاهده فیلم ها و آموزش های پروژه محور برنامه نویسی PHP کلیک کنید.

دیدگاه‌ها  

+1 # Guest 1396-08-12 18:22
سلام خسته نباشید
ببخشید من عین دستورات بالا رو نوشتم و اجرا کزدم ولی اخطار میده! گفته تابع mail نتونست متصل بشه به mailserver ، گفته smpt یا smpt_port رو در php.ini چک کن یا از تابع ini_set استفاده کن!
چجوری مشکلو حل کنم ممنون
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+1 # احسان عباسی 1396-08-13 18:36
سلام. بر این عقیده هستیم که اگر کدهای بالا را در هاست واقعی مورد استفاده قرار دهید، مشکل به طور اتوماتیک حل خواهد شد. روش برطرف کردن این خطا در localhost مشکل می باشد.
متن این خطا به صورت زیر است:
نقل قول:
Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\xampp\htdocs\mail\mailform.php on line 7 Mail Sent.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+5 # امیرکیان 1395-02-17 14:11
وقتی که ایمیل را بدین طریق راسال میکنیم با کارکترهای فارسی مشکل دارد و نمایش درستی ندارد و فقط کارکتر های انگلیسی را بدرستی نمایش میدهد

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

: برای تغییر تنظیمات پیکربندی ارسال ایمیل می توانید از فایل php.ini استفاده کنید، احتمالاً اگر می خواهید مطالب بیشتری راجع به توابع ارسال ایمیل بدانید از لینک روبرو استفاده کنید:
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+4 # مهرداد صلاحی 1395-02-17 17:33
نباید مشکلی داشته باشه. شما هیدر مربوط به کاراکترهای utf-8 رو هم ست کنید و دوباره تست کنید.
کدش توی اینترنت هست.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+1 # مهمان 1395-01-26 17:26
سلام و خسته نباشید

من با نت بینز در یک صفحه پی اچ پی کد مثال بالا را نوشتم و در قسمت to آدرس ایمیل خودمو دادم یعنی از یک ایمیلم در یاهو به ایمیل دیگرم در یاهو ... بعد از زدن دکمه ثابمیت پیغام Thank you for using our mail form را میدهد اما وقتی وارد ایمیل میشم هیچ میلی با عنوانی که در قسمت subject نوشتم برام نیامده.

درواقع در قسمت to در تابع میل آدرس ایمیل مقصد را نوشتم و زمانی که صفحه را لود می کنم در تکس باکس ایمیل آدرس ایمیل مبدا را وارد میکنم. خطا نمیده اما ایمیلی هم دریافت نمی کنم لطفا راهنماییم کنید. ممنون.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
0 # مهرداد صلاحی 1395-01-29 09:38
با سلام و تشکر.
به احتمال قوی شما ارسال ایمیل رو چک نمیکنید. کد رو بذارید تا ببینم.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
0 # raghb 1394-09-25 17:35
سلام و خسته نباشید
من بوسیله تابع mail
ایمیلی به جیمیل دیگرم ارسال کردم
البته با تنظیمات صحیح و به وسیله sendmiller
متاسفانه جیمل اجازه ارتباط با جیمیل ست شده را نداد و اخطار داد و دیگر ارسال انجام نشد؟
لطفا برای رفع مشکل امنیت جیمیل راهنمایی بفرمایید
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+2 # مهرداد صلاحی 1394-09-25 19:35
با سلام.
اگه تنظیمات امنیتی درست باشه، مشکلی برای ارتباط وجود نداره. یه بار با PHPMailer تست کنید و سعی کنید ایمیل ارسال کنید.
در نظر داشته باشید، میل‌سرور و شماره پورت رو هم درست تنظیم کرده باشید.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+1 # azadeh ahmadi 1394-08-04 09:56
سلام و احترام
من بخش مقدماتی و کار با فرمها توی پی اچ پی رو خوندم و کامل فهمیدم...البته بعد از کلی سوال پرسیدن از شما...
خیلی ممنون...
ولی قسمتهای بعدیش رو اصلا متوجه نمیشم...کار با تاریخ و اینکلود کردن و فایلها رو هم کمی متوجه شدم..بنظرتون الان چیکار کنم؟
تا همینجا کافیه؟!
یا باید همه اش رو بخونم!؟
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+1 # مهرداد صلاحی 1394-08-04 10:03
با سلام و احترام و همچنین تشکر از شما...
در مورد یادگیری باید خدمتتون عرض کنم که برای یادگیری انتهایی وجود نداره.
شما ادامه بدید هر جا هم که نیاز بود سوالتون رو بپرسید، حتما جواب خواهیم داد.

یک نوید هم به شما و سایر دوستان بدهم که ان شاءالله به زودی در این سایت یک فوروم مخصوص پرسش و پاسخ ایجاد خواهد که دسته بندی مطالب و سوالات در اونجا خیلی اصولی تر و همچنین امکان درج سوال و یا پاسخ با امکاناتی بسیار بیشتری خواهد بود. (حتی قابلیت درج کدها خیلی بهتر خواهد بود.)
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
0 # Ijavad 1394-09-09 21:31
سلام میتونم اینکارو برای شما انجام بدم ؟؟؟؟ (مجانی ) چرا؟؟
چون این سایت واقعا کمک میکنه به هم وطنامون میکنه لطفا بزارین من این کارو انجام بدم راسی یه سوالی برام پیش اومد اونم این بود که چطوری تو نوشتن قالب ورد پرسس از function ها استفاده می کنیم یعنی بدونه اینکه به صفحه چیزی include بشه ما اون function ها رو می تونیم استفاده کنیم لطفا جواب بدین خیلی تو گوگل سرچ کردم ولی چیزی پیدا نکردم
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
0 # مهرداد صلاحی 1394-09-09 21:38
با سلام و تشکر.
در وردپرس یه فایلی هست به نام function.php که معمولا توابع پر کاربرد رو توی اون می‌نویسن. در مورد include کردن،‌ در وردپرس و یا فریمورک‌ها از include به طور مستقیم استفاده نمی‌شه.
بهتره اینطوری بگم که در CMS ها و فریمورک‌ها از Autoload استفاده میشه. به این معنی که با کدنویسی چند خطا و سیستم نام دهی فایل‌ها و پوشه‌ها میشه کاری کرد، که در هر صفحه نیازی به Include کردن فایل نباشه، و با صدا زدن تابع موردنظر فایلی به طور اتوماتیک include میشه!!!
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن

آموزش صوتی PHP

بستن
مدرس:
سوال و جواب:

ابزاری که در پیش روی دارید یکی از ابزارهای بسیار کاربردی سایت بیاموز در زمینه آموزش است، این ابزار برای سهولت یادگیری شما کاربران محترم طراحی شده است.

فقط کافی است روی عنوان پاراگراف مورد نظرتان کلیک کنید تا پخش صدا آغاز شود ...!

تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehi مجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامی پرداخت آنلاین -  بانک ملت معرفی بیاموز در شبکه سه پرداخت آنلاین - بانک اقتصاد نوین پرداخت آنلاین - بانک سامان
 
دوره های آموزشی راه اندازی کسب و کارهای اینترنتی
تبلیغات اینترنتی