اسکریپت ارسال ایمیل به صورت اچ تی ام ال

سلام . خسته نباشید . من یه اسکریپت می خواستم که یه سری اطلاعات رو به صورت اچ تی ام ال واسه یکی بفرسته . یعنی در آرگومان String message تابع Mail بشه از اچ تی ام ال برای زیبا سازی پیام استفاده کرد . از دوستانی که توو php تخصص دارند خواهش می کنم که به من کمک کنند . ممنون .
 

ARTA_ADOBE CO

Active Member
PHP:
<?php						
$message = '
<HTML>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<br />
<br />
<br />
<br />
<table width="600" border="0" align="center" cellpadding="0" cellspacing="0" dir="rtl">
  <tr>
    <td>your HTML massage</td>
  </tr>
</table>
</body>
</HTML>
';

// multiple recipients
$to  = [email protected];

// subject
$subject = 'hi';


// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";

// Additional headers
$headers .= 'From: yourname!!!>' . "\r\n";

// Mail it
mail($to, $subject, $message, $headers);

header("Location: your_next_page.html");
?>


سوالی بود بپرس اول کامنت های سورس رو نگاه کن.
اینجا رو اگه مشکل انگلیسی نیست حتما بخون : http://ir.php.net/manual/en/ref.mail.php
 
آخرین ویرایش:
سلام . یک دنیا ممنون از شما . من این کدهارو گذاشتم و الان به صورت اچ تی ام ای ارسال می شه . اما مشکلی که الان دارم اینه که من یه سری متغیر توو پی اچ پی تعریف کردم که وقتی این ایمیل ارسال می شه اون متغیر ها به صورت زیر نشون داده می شه در صورتی که من می خوام محتوای داخل متغیر نشون داده بشه . ممنون می شم اگه منو راهنمایی کنید . منتظرم .

نام و نام خانوادگی : $a

تلفن تماس (همراه کد) : $b

شهر / استانی : $c

آدرسی : $d

پست الکترونیک : $e
 
در ضمن من توو متن ارسالی از تگ <font face="tahoma" color="#FF000"> استفاده کردم اما نه فونت متن و نه رنگش تغییر کرد . چرا ؟؟؟؟؟؟؟؟؟؟ :sad:
 

farik

Well-Known Member
با سلام نميدونم چرا ولي خوب تو سرور من به مثال آقاي ارتا ادوب كو ارر ميده و ميگه @زده نشده اگر ايميل رو هم تو يك جفت گيومه بزاري ايميل ميفرسته ولي بدست ميلم تو ياهو نميرسه ميشه بگين دليلش چيه؟
 

ARTA_ADOBE CO

Active Member
امیر جان شما متغییر ها رو مقدار دهی نکردی مطمئن باش یا اگه توسط فرم به این اسکریپ داری میرسی فرمت مشکل داره اسکریپتت رو بزار اینجا بهت بگم مشکل چیه...

یه چیز دیگه تگ فونتت مشکل داره اینو ببین : http://www.w3schools.com/tags/tag_font.asp
مثال آنلاینش : http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_font

تگت رو نبستی ؟ رنگت رو هگزا نوشتی تو CSS هگزا هست تو تگ فونت باید rgb باشه راستی فقط واسه این کار باید از فونت استفاده کنی در بقیه حالتها حتما باید از CSS استفاده کنی (استانداردهای وب)

و اما فاریک عزیز کاراکتر @ کاری که تجربه به من نشون داده انجام میده از output های احتمالی که معمولا warning هستند
برای چاپ شدن جلوگیری میکنه یه جور ignoraton هست ( این در حد سواد من بود !!!!)
من خودم بدون @ استفاده میکنم و مشکلی ندارم شما هم اگه سرورت گیر میده حتما @ رو بزار configuration میل سرور روی آپاچیت این نیاز روداره...(حساسیت نشون نده)

توی خوده توضیح mail در php هم اشارهای مستقیم نشده ولی تو مثال کاربرها تک و توک استفاده شده...
http://ir.php.net/manual/en/function.mail.php
پیشفرض استفاده از @ بهتر است.


حتی میشه برای اطمینان از رفتم میل این الگوریتم رو به کاربرد با توجه به اینکه mail مقدار boolean* برمیگردونه:

PHP:
if (@mail($to, $subject, $message)) {
echo('<p>Mail sent successfully.</p>');
} else {
echo('<p>Mail could not be sent.</p>');
}

* boolean ===== true or flase
 
آخرین ویرایش:

mashaheer

Member
اتفاق من هم يك چنين مشكلي دارم.اين مشكل به حاطر اين است كه
وقتي در ارسال از متغيرهاي php استفاده مي كني.
به جاي اينكه مثلا اينجوري باشه
PHP:
 <font face="tahoma" color="#FF000">
اين جوري ميشه.
PHP:
 <font face=\"tahoma\" color=\"#FF000\">
كسي مي تونه راه حلي پيدا كنه؟
 

ARTA_ADOBE CO

Active Member
اوه مشاهیر عزیز من رو یاده نکته مهمی انداختی که بگم .

شما اگر دارید یه کد html در یک متغیر مینویسید حتما باید کوتیشن استفاده کنید نه دابل کوتیشن تا مجبور به استفاده از
روش escaping نشید در این روش قبل از هر " باید از \ استفاده کنید تا php اون رو " ترجمه نکند !

ولی بهترین روش استفاده از ' به جای " چون نیاز به escaping نیست...
 

mashaheer

Member
الان مثلا من يه textarea دارم كه مي خواهم محتويات توش (اعم از html و غير html ) رو به ايميل ارسال كنم.
كد بالا كه نوشته بوديد رو مي نويسم و متغير message رو به text area نسبت مي دم.ولي وقتي به ايميل مي فرسته به صورت
PHP:
<font face="\tahoma\" color=\"#FF000\">
هست به همين دليل نمي تونه رنگ ها و تگ هايي كه " دارند را نشون بده.
 

ARTA_ADOBE CO

Active Member
کد بالا مشکل داره " اول باید \ قبلش به کار بره نه بعدش !
بعدم تو massag از ' استفاده کن تا مجبور نشی از \ استفاده کنید.
یعنی:

PHP:
massage = '
your string...
and some HTML code :
<font face="tahoma" color="#FF000">stylish name !</font>
'
 

mashaheer

Member
خوب من هم همين كار رو مي كنم.
وقتي اطلاعات رو از teatarea در يافت مي كنه خود ش هر جا " هست قبلش \ رو ميذاره و همين باعث ميشه كه رنگ ها و ... نشان داده نشن
 

ARTA_ADOBE CO

Active Member
من نمیدونم شما منطق برنامتون چیه اما در مورد کد زیر چی فکر میکنید ؟

<p>&lt;head&gt;<br />
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;<br />
&lt;title&gt;Untitled Document&lt;/title&gt;<br />
&lt;/head&gt;</p>
<p>&lt;body&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</p>


این کد حالت رشته ای و غیرقابل اجرای کد زیره :

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
</body>
</html>


با این مشکل روبه رو هستید باید برنامت رو بزاری اینجا تا بگم مشگلت کجاست.
یا سوال بپرس !
 

mashaheer

Member
نه من با اين مشكلي كه گفتيد مواجه نيستم.
ببينيد اين سورس برنامه هست:
PHP:
<form method="POST">
  <textarea rows="2" name="message" cols="20"></textarea><input type="submit" value="Submit" name="B1"><input type="reset" value="Reset" name="B2"></p>
</form>
 <?php
 $message=$_REQUEST['message']
 ....
 mail($to, $subject, $message, $headers);
 ?>
</body>
حالا اگه داخل textarea كد html باشه اون رو اينجوري تفسير مي كنه:
PHP:
<font face="\tahoma\" color=\"#FF000\">
منظورم رو فهميديد؟
 

ARTA_ADOBE CO

Active Member
خوب بهش بگو دیگه این کار رو نکنه ! جدی میگم...
وقتی داری از ' استفاده میکنی نیازی به استفاده از روش escaping نیست.
پس راحت کد وارد شده از textarea رو وارد تابع میل بکن...
 

ARTA_ADOBE CO

Active Member
وقتي اطلاعات رو از teatarea در يافت مي كنه خود ش هر جا " هست قبلش \ رو ميذاره و همين باعث ميشه كه رنگ ها و ... نشان داده نشن
این جملتون یعنی خود به خود اضافه میکنه ؟ یعنی شما براش اگوریتمی تعیین نکردید این کار بکنه؟
اگر اینطور هست یا اصلا نیست ! سورس کاملش رو اینجا برام بزارید اگر نمیخواهید بیشتر از این وقتتون گرفته بشه...
 
آخرین ویرایش:

جدیدترین ارسال ها

بالا