السبت، 26 أبريل 2014

أساسيات البرمجة برمجة المواقع بي اتش بي ارسال البريد الالكتروني الاميل PHP Sending Emails

 بي اتش بي ارسال البريد الالكتروني الاميل
 PHP Sending Emails

 بي اتش بي ارسال البريد الالكتروني الاميل  PHP Sending Emails
 بي اتش بي ارسال البريد الالكتروني الاميل  PHP Sending Emails

إعدادات ال  بي اتش بي لإرسال البريد الالكتروني الاميل PHP Sending Emails

لاستخدام البي اتش بي في ارسال البريد الالكتروني فيجب عمل الإعدادات التالية وذلك بتعديل ملف الإعدادات الخاص بال بي اتش بي PHP.ini .يجب تغير الإعدادات كما التالي في ويندوز.

[mail function]
; For Win32 only.
SMTP = smtp.secureserver.net

; For win32 only
sendmail_from = ahmed.almahallawi@outlook.com

للمستخدمين لينكس
[mail function]
; For Win32 only.
SMTP = 

; For win32 only
sendmail_from = 

; For Unix only
sendmail_path = /usr/sbin/sendmail -t -i


إرسال نص بالبريد الاكتروني الاميل في البي اتش بي

لارسال نص بالبريد الالكتروني نستخدم الدالة ()mail وهذه الدالة لها باراميترات أي وسطاء سنوضحها في الجدول التالي.

الصيغة العامة لدالة أرسال البريد الالكتروني الاميل .

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

جدول الباراميترات للدالة () mail

الباراميترالوصف
toالبريد المرسل اليه اي الذي سيتقبل بريدك
subjectاسم  رسالة البريد اي عنوان الرسالة
messageالرسالة نفسها ويجب ان يكون طول السطر ان لا يتجاوز 70 حروف
 (\n)وستخدم
لبدء سطر جديد وهكذا
headersخيار اختياري مثل ارسال نسخة كربونية او مخفية
parameters
اختياري في حال كانت هناك باراميترات اخرى

مثال على ارسال بريد الكتروني نصي او اميل بالبي اتش بي php


<html>
<head>
<title>Sending email using PHP</title>
</head>
<body>
<?php
   $to = "xyz@somedomain.com";
   $subject = "This is subject";
   $message = "This is simple text message.";
   $header = "From:abc@somedomain.com rn";
   $retval = mail ($to,$subject,$message,$header);
   if( $retval == true )  
   {
      echo "Message sent successfully...";
   }
   else
   {
      echo "Message could not be sent...";
   }
?>
</body>
</html>


مثال ارسال بريد الكتروني اميل يحتوي على هتمل كود html بالبي اتش بي php

<html>
<head>
<title>Sending HTML email using PHP</title>
</head>
<body>
<?php
   $to = "xyz@somedomain.com";
   $subject = "This is subject";
   $message = "<b>This is HTML message.</b>";
   $message .= "<h1>This is headline.</h1>";
   $header = "From:abc@somedomain.com rn";
   $header = "Cc:afgh@somedomain.com rn";
   $header .= "MIME-Version: 1.0rn";
   $header .= "Content-type: text/htmlrn";
   $retval = mail ($to,$subject,$message,$header);
   if( $retval == true )
   {
      echo "Message sent successfully...";
   }
   else
   {
      echo "Message could not be sent...";
   }
?>
</body>
</html>

ارسال ملف مرفق attachment بالبي اتش بي من خلال البريد الالكتروني الاميل

توجد عدة خطوات يجب عملها قبل ارسال ملف مرفق بالبريد الالكتروني وهي.
  • اعداد الخاصية content-type في ال header الراس الى multipart/mixed.
  • تخصيص الملف ايضا بالخاصية boundaries.
  • ال boundaries يبدا بي علامتي -- ثم يتبع برقم يتم توليده باستخدام الدالة ()md5.
  • الملف المرفق يجب ترميزه باستخدام ()base64_encode 
  • لارسال افضل نستخدم دالة تقسيم الملف الى اجزاء ()chunk_split.
في المثال التالي بفرض لدينا ملف نصي اسمه ومساره كالتالي temp\test.txt\ ونريد ارساله كمرفق فالتالي كود الارسال.


<html>
<head>
<title>Sending attachment using PHP</title>
</head>
<body>
<?php
  $to = "xyz@somedomain.com";
  $subject = "This is subject";
  $message = "This is test message.";
  # Open a file
  $file = fopen( "/tmp/test.txt", "r" );
  if( $file == false )
  {
     echo "Error in opening file";
     exit();
  }
  # Read the file into a variable
  $size = filesize("/tmp/test.txt");
  $content = fread( $file, $size);

  # encode the data for safe transit
  # and insert rn after every 76 chars.
  $encoded_content = chunk_split( base64_encode($content));
  
  # Get a random 32 bit number using time() as seed.
  $num = md5( time() );

  # Define the main headers.
  $header = "From:xyz@somedomain.comrn";
  $header .= "MIME-Version: 1.0rn";
  $header .= "Content-Type: multipart/mixed; ";
  $header .= "boundary=$numrn";
  $header .= "--$numrn";

  # Define the message section
  $header .= "Content-Type: text/plainrn";
  $header .= "Content-Transfer-Encoding:8bitrnn";
  $header .= "$messagern";
  $header .= "--$numrn";

  # Define the attachment section
  $header .= "Content-Type:  multipart/mixed; ";
  $header .= "name="test.txt"rn";
  $header .= "Content-Transfer-Encoding:base64rn";
  $header .= "Content-Disposition:attachment; ";
  $header .= "filename="test.txt"rnn";
  $header .= "$encoded_contentrn";
  $header .= "--$num--";

  # Send email now
  $retval = mail ( $to, $subject, "", $header );
  if( $retval == true )
   {
      echo "Message sent successfully...";
   }
   else
   {
      echo "Message could not be sent...";
   }
?>
</body>
</html>







twitter @aalmahallawi


التسميات: