با استفاده از تابع mail() در PHP می توانید به راحتی ایمیل های متنی ارسال کنید. اما در بیشتر موارد نیاز است که ایمیل ها HTML خوب را به کاربران ارسال کنید . مثل ایمیل ثبت نام و خوش آمد گویی ، ایمیل ارسال موفقیت آمیز ارتباط با ما ، فاکتور و غیره….
ما یک قالب ایمیل خوش آمد گویی ایجاد کردیم . که در این آموزش قصد داریم از آن استفاده کنیم .
کد PHP
ارستفاده از content-type در header یک ضرورت برای ارسال ایمیل های HTML است چونکه در صورت ست نکردن uft8 امکان دارد متن پیام شما به درسی برای کاربر نمایش داده نشود . header های دیگر مثل From , CC , Bcc و غیره به صورت اختیاری می شود استفاده کرد .متغییر $htmlContent محتوای html ایمیل را داخل خود ذخیره کرده است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
<?php $to = 'user@example.com'; $subject = "Beautiful HTML Email using PHP by NetParadis"; $htmlContent = ' <html> <head> <title>Welcome to NetParadis</title> </head> <body> <h1>Thanks you for joining with us!</h1> <table cellspacing="0" style="border: 2px dashed #FB4314; width: 300px; height: 200px;"> <tr> <th>Name:</th><td>NetParadis</td> </tr> <tr style="background-color: #e0e0e0;"> <th>Email:</th><td>info@netparadis.com</td> </tr> <tr> <th>Website:</th><td><a href="http://www.netparadis.com">www.netparadis.com</a></td> </tr> </table> </body> </html>'; // Set content-type header for sending HTML email $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; // Additional headers $headers .= 'From: NetParadis<sender@example.com>' . "\r\n"; $headers .= 'Cc: welcome@example.com' . "\r\n"; $headers .= 'Bcc: welcome2@example.com' . "\r\n"; // Send email if(mail($to,$subject,$htmlContent,$headers)): $successMsg = 'Email has sent successfully.'; else: $errorMsg = 'Email sending fail.'; endif; ?> |
برای کپی صحیح و کامل کدها ، دابل کلیک کرده تا وارد محیط سفید و کپی شوید در غیر اینصورت امکان دارد اجرای کدها با مشکل روبرو شود
اگر قصد اضافه کردن حجم زیادی از محتوای HTML را دارید ، بهتر است آن را داخل یک فایل (email_template.html) ذخیره و محتوای آن را توسط file_get_contents() دریافت کنید.
1 |
$htmlContent = file_get_contents("email_template.html"); |
امیدوارم از این آموزش ” ارسال ایمیل های HTML ” کوتاه و کاربردی نهایت استفاده را برده باشید . همانطور که دیدید نکته کلیدی این آموزش و روش استفاده درست از header ها و content-type ها بود.
برای دانلود سورس کد ارسال ایمیل HTML زیبا توسط PHP از قسمت زیر اقدام کنید
موفق باشید.
سلام خسته نباشید این ایمیل های گروهی رو چطور با php میفرستند اگه میشه آموزش بدید ممنون میشم
سلام ممنون.
باید smtp سرور بخرید
سلام . اموزش عالی . یک سوال و در واقع یک کمک نیاز دارم . من یک قالب ایمیل html دارم و آن را از هاست با php ارسال میکنم . وقتی ایمیل ارسال میشود ایکن ان یم علامت سوال است . چونه میشود ان را تغییر داد . ممنون
سلام جناب شفیعی
یک کمک نیاز دارم
من یک قالب ایمیل html دارم و این قالب رو با کد php ارسال میکنم تا اینجا هیچ مشکلی نیست فقط به کمک نیاز دارم بابت اینکه . نیاز دارم در قالب html یک کد رو برای کاربر ارسال کنم
من در فایل php یک کد رندوم ۴ رقمی ساختم و نیاز دارم این کد رو در قالب html ارسال کنم . چطور میتونم
برای مثال
۱۲۴۵
میخوام بتونم کد بالا رو که در قالب html هست از php کنترل و تغییر بدم
ممنون
سلام. کل کدهای html رو داخل یک متغییر تعریف کنید و بعد با php ارسال کنید در اینصورت داخل متغییری که کد html داره میتونید متغییر های دیگر php رو هم قرار بدید مثلا
$a = “
$rand
“;
حتما کد باید بین ” باشه تا متغییر شناخته شه
درود.وقت بخیر.سوالی از خدمتتون داشتم؟چطوری می تونیم کد های php رو درون ایمیل ارسال کنیم با حالت $htmlContent ؟
سلام. ممنون.
ابتدا هر مقداری که میخواهید نمایش بدید را در یک متغییر قبل از $htmlContent ذخیره کنید مثلا $number= rand(0,1111) و بعد بصورت زیر استفاده کنید:
‘.$number.’
در رابطه با این مطلبی که الان فرمودید.چطوری من $number رو در $htmlContent قرار بدم؟
گفته شد بصورت ‘.$number.’
بهتره php مقدماتی را یادبگیرید
البته منظور بنده استفاده از این روش file_get_contents است.این روشی که شما فرمودید رو بلد هستم.
سپاسگزارم.مشکلم حل شد.نیازی به منتشر شدن پیام ها نیست.
خیلی نوشته ارزنده ای نوشتید. مرسی از شما
سلام عالی بود خیلی ممنونم.
سلام. خوشحالیم که مفید واقع شده.
موفق باشید.
این کدهایی که نوشتین یوزر پسورد ایمیل رو مشخص نکردین. چجور از یک ایمیل به چند ایمیل ارسال ایمیل میشه بدون اینکه لاگ این کنی؟ بعد روی لوکال هاست جواب میده؟ لطفا جوابو به ایمیلم ارسال کنید
سلام. تابع mail() در php از پروتکل SMTP از پیش تنظیم شده هاست استفاده می کنه که نیازی به مشخص کردن پسورد و موارد غیره نداره کافیه تابع رو با مقادیر مشخصی صدا بزنید و ایمیل ارسال بشه.
اگر قصد دارید از سرور های SMTP پولی یا خود gmail استفاده کنید نیاز است یورز و پسورد را وارد کنید و یا کلید اختصاصی را استفاده کنید.
ارسال ایمیل با GMAIL در PHP
موفق باشید.