ارسال ایمیل در PHP با قالب HTML

٢٢٠١٨ visibility ٣٩ mode_comment

به نام خدا و سلام به همه دوستان،قبلا دوستان عزیز در انجمن و نظرات سایت درخواست های مبنی بر آموزش چگونگی ارسال ایمیل با قالب HTML در PHP رو داشتن که در این مطلب قصد داریم این کارو انجام بدیم،پس با ما همراه باشید.

روش کار به این صورت هستش که ما یه فرم رو طراحی میکنیم و بعد از ارسال این فرم توسط کاربر اطلاعات فرم رو در سمت سرور دریافت می کنیم و در قالب html جایگذاری کرده و در نهایت با تابع mail ارسال میکنیم.

فرم ارسال اطلاعات

برای این کار یه فرم ساده طراحی کردیم که شامل 4 تا فیلد برای نام،ایمیل،موضوع و متن درخواست هستش.

JS Bin

قالب HTML

خوب برای قالب html ایمیل هم طبق فیلد هایی که در فرم داریم یه طرح ساده رو آماده کردیم.   JS Bin

کدهای php

خوب نوبت میرسه به کدهای php برای ارسال ایمیل،در اکشن فرمی که طراحی کردیم یه فایل php با نام mailer.php قرار میدیم تا اطلاعات فرم به این فایل ارسال بشه کد های فایل mailer.php به این صورت قرار میگیرن.

در ابتدای کار چک میکنیم فرم ارسال شده باشه  و بعدشم فیلد های ارسالی رو دریافت کردیم با تابع htmlspecialchars ورودی های html کاربر رو خنثی میکنیم و بعدشم تابع sendEmail رو که خودمون نوشتیم با پارامتر های مناسب فرخوانی میکنیم و نتیجه رو نشون میدیم.

در پایین تر تابع sendMail رو تعریف کردیم،در ابتدای کار اون قالب html که طراحی کردیم رو توسط دستورات buffer دریافت کردیم و داخل متغییر html ذخیره کردیم (استفاده ازدستورات بافر برای این کار بهینه تر هستش) و اون اطلاعاتی که کاربر فرستاده رو با متغییر های لازم در قالب با استفاده از تابع str_replace عوض کردیم.نکته اصلی کار اینجاست که تابع mail توانایی پذیرفتن header های دلخواه برای ارسال ایمیل رو داره ما هم اومدیم و چند تا هدر مناسب برای ارسال ایمیل تنظیم کردیم تا اعلان کنیم که محتوای ما html هستش و هم چنین مقدار فیلد From رو هم توسط همین هدرها تنظیم کردیم.

خوب در نهایت تابع mail رو با مقادیر لازم فرخوانی کردیم و چون نتیجه ای مقدار bool هست اونو به عنوان نتیجه تابع sendMail خودمون  return کردیم.

info نکته :

اسکریپت روی هاست تست شده و روی لوکال کار نمیکنه، اگر احتمالا هاستینگ شما تابع mail رو غیر فعال کرده با یه تیکت درخواست فعال کردن این تابع رو بدید تا براتون فعالش کنن.

این هم نتیجه کار در جیمیل خودم.

نتیجه ارسال ایمیل در قالب HTMLامیدوارم براتون مفید باشه.موفق و پیروز باشید.

.: فقط اعضاي سايت مجاز به ديدن اين قسمت هستند :.
در صورتي که عضو سايت هستيد می توانید لاگین شوید.
در غير اين صورت در کمتر از 1 دقيقه مي توانيد در سايت عضو شويد.

comment دیدگاه کاربران

سلام
دو تا مشکل دارم:
1- پیغام های درون echo اگه فارسی باشه اجق وجق نشون میده
2- چطوری تعیین کنیم اگه پر کردن چند فیلد ضروری رو بررسی کنه چون فرمی که شما ساختید در ابتدای امر ارسال رو میزنی سریع ارسال میشه

سلام
1- فایلتون رو utf8 کنید.
2- باید از جاوااسکریپت استفاده کنید و validation سمت کاربر داشته باشید.

علی

با سلام من مبتدی هستم لطفا بر اساس ایمیلم و سایتم فایل های را درست نمایید و بفرمایید در کجا قرار دهم لطفا به ایمیلم بفرستید

این امکان وجود نداره.
در خواست های این چنینی رو باید در انجمن سایت مطرج کنید. ایشالله دوستانی که بتونند کمکتون می کنند .

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.
1 2 3