• 0

إرسال بريد إلكتروني باستخدام php

كيف ممكن ارسل بريد الكتروني من خلال استخدام php سمعت انه في دالة تعمل ذلك mail و لكن لم افهم كيف استخدمها

2 اشخاص أعجبوا بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

صحيح دالة mail تستخدم لأرسال بريد إلكتروني على البريد الإلكتروني الذي تود إرسال له هذا البريد, في البداية حتى تستطيع ارسال بريد إلكتروني من خلال أي صفحة بالموقع يجب أن نعرف دالة تكون قابلة للاستخدام بأي وقت و من أي صفحة فمثلاً يمكننا إنشاء دالة باسم sendMail بهذا الشكل 

function sendMail( )
{
        
        
}

ثم نمرر لها المتغيرات التالية 

function sendMail( $to, $from, $subject, $message )
{

}

حيث أن المتغير 

$to

هو البريد الإلكتروني الذي نود إرسال بريد إليه. و متغير 

$from

هو البريد لصاحب الموقع أو للشخص الذي قام بإرسال هذا البريد. و 

$subject

هو عنوان البريد المرسل و 

$message

هو نص الرسالة التي تم إرسالها بالبريد ثم بداخل الدالة نقوم بوضع ترميز utf-8 لعنوان الرسالة كما في الكود التالي 

$subject = sprintf( "=?utf-8?B?".base64_encode( $subject )."?=" );

ثم قمنا بإرسال headers الازمة عن طريق متغير 

$headers
$headers = sprintf( "To: %s <%s>\nFrom: %s\nMIME-Version: 1.0\nContent-type: text/html; charset=utf-8", $to, $to, $from );

ثم قمنا بتمرير المتغيرات إلى دالة mail كما في الكود التالي 

return mail( $to, $subject, $message, $headers );

فتكون كامل الدالة 

function sendMail( $to, $from, $subject, $message )
{
        $subject = sprintf( "=?utf-8?B?".base64_encode( $subject )."?=" );
        $headers = sprintf( "To: %s <%s>\nFrom: %s\nMIME-Version: 1.0\nContent-type: text/html; charset=utf-8", $to, $to, $from);
        return mail( $to, $subject, $message, $headers );
}

ويمكن استخدام الدالة بهذه الطريقة 

<?php 
$to = "البريد المرسل إليه";
$from = "بريد المرسل";
$subject = "عنوان البريد";
$message = "نص البريد";
sendMail($to,$from,$subject,$message);

 

2 اشخاص أعجبوا بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

بالإضافة لما شرحه بلال فإنه يمكنك إرسال ال mail بواسطة الدالة mail  ولكن في بعض الأحيان لا تكون هذه الدالة كافية أو لا تلائم إحتياجاتك مثل الأمان والتشفير أو المرفقات لذلك تحتاج لاستخدام مكتبة لتنفيذ المطلوب مثل PHPMailer

لتثبيت المكتبة بواسطة composer

composer require phpmailer/phpmailer

لاحظ المثال التالي 

<?php

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

require 'vendor/autoload.php';

$mail = new PHPMailer(true);

try {
    //إعدادات الخادم
    $mail->SMTPDebug = SMTP::DEBUG_SERVER;                     
    $mail->isSMTP();                                            //استخدام SMTP
    $mail->Host       = 'smtp.example.com';                     
    $mail->SMTPAuth   = true;                                   
    $mail->Username   = 'user@example.com';                     // username
    $mail->Password   = 'secret';                               // password
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;            
    $mail->Port       = 465;     
  
    //Recipients
    $mail->setFrom('from@example.com', 'Mailer');
    $mail->addAddress('joe@example.net', 'Joe User');     //Add a recipient
    $mail->addAddress('ellen@example.com');               //Name is optional
    $mail->addReplyTo('info@example.com', 'Information');
    $mail->addCC('cc@example.com');
    $mail->addBCC('bcc@example.com');

  
    $mail->addAttachment('/var/tmp/file.tar.gz');         //المرفقات
    $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    //Optional name

    //المحتوى
    $mail->isHTML(true);                                  //محتوى html
    $mail->Subject = 'Here is the subject';
    $mail->Body    = 'This is the HTML message body <b>in bold!</b>';
    $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

    $mail->send();
    echo 'Message has been sent';
} catch (Exception $e) {
    echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}

يمكنك القراءة حول المكتبة أكثر من الرابط بالأعلى

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن