اذهب إلى المحتوى

السؤال

نشر

إني أعمل على إنشاء موقعاً تعريفياً لنفسي (portfolio)، فيه سأضيف قسم تواصل معي (contact me). بحال قام حضرة الزائر/المتصفح بتعبئة البيانات من إسم وبريد إلكتروني ورسالته لي، ثم قام بإرسالها. كيف يمكنني جعلها تعمل؟ أي كيف يمكنني جعل الرسالة تصل الى ال gmail الخاص بي. 

قد جربت هذا الأمر عدة مرات بمشاهدة فيديوهات على يوتيوب إلا أنها لم تجدِ نفعاً (بلغة ال php ). وجربت وسيلة أخرى وقد وصلتني الرسالة، ولكن لقسم spam في ال gmail وليس لقسم ال inbox.

إذاً إني أريد أن تصلني الرسالة لل inbox بحيث يصلني إشعار (notification) بشكل تلقائي على gamil الخاص بي. ( كما العادة إن الإشعار يتفعّل تلقائياً عندما تصل رسالة لل gmail وهو ليس مشكلتي)

فكيف السبيل لذلك من وحي تجربتكم وخبرتكم.

شكراً لكم مقدماً

Recommended Posts

  • 1
نشر

لا يمكن إرسال بردي الكتروني من الواجهات الأمامية لأنه يحتاج لمخدم بريد الكتروني API online أو host a server.

طريقة PHP التي ذكرتها يجب أن توفر السكربت على مخدم متصل بالانترنت أو استضافة لذلك ربما لم يعمل.

يوجد بعض حدمات إرسال البريد الالكتروني مثل smtpjs و formspree و EmailJS وغيرهم يمكنك تضمين المكتبة في جزء script ثم تطبيق دالة بسيطة تقوم هذه الدالة بالاتصال ب webservice و هي من ترسل الإيميل لك.

مثال عن smtpjs:

<script src="https://smtpjs.com/v2/smtp.js"></script>

<script>
  Email.send("from@you.com", // بريدك المرسل
  "to@them.com",  // المستقبل
  "This is a subject", // موضوع
  "this is the body",  // جسم البريد
  "smtp.yourisp.com",  // مزود حدمة التي عليها بريدك
  "username", // معلومات بريدك
  "password");
</script>

مثال عن formspree:

<form action="https://formspree.io/f/{form_id}" method="post">
  <label for="email">Your Email</label>
  <input name="Email" id="email" type="email">
  <button type="submit">Submit</button>
</form>


form_id    هو معرف المستخدم لديك ضمن الخدمة أي بعد عمل اشتراك

تابع التوثيق الرسمي لهذه الخدمات لتفاصيل أكثر.

كما أن الطريقة التي وضعها حسان بسيطة و فعالة و سهلة.

  • 0
نشر

عوض عن نموذج يتم تعبئته من قبل الزائر هناك حل أبسط ومضمون من ناحية عدم وصوله لقسم Spam، يمكنك وضع زر "تواصل معي" عند الضغط عليه يتم فتح تطبيق البريد الالكتروني الخاص بالمستخدم وتعيين العنوان الخاص بك بشكل تلقائي،

يتم ذلك عبر إضافة رابط من النمط التالي ويمكنك تنسيقه بما يناسب موقعك ليكون على شكل زر:

<a href="mailto:ibrahim@gmail.com">تواصل معي</a>

احرص على تبديل عنوان البريد بالعنوان الخاص بك 

  • 0
نشر

أيضا يمكنك استخدام لارافل إذا كنت تستخدم لارافل فيمكنك إنشاء ملف لإرسال البريد الألكتروني باستخدام الأمر التالي 

php artisan make:mail ContactUs

فسيتكون لديك ملف باسم ContactUs.php في مجلد mail بداخل مشروعك ، ثم في هذا الملف يمكنك إنشاء متغير باسم 

public $details; 

ويمكنك تمرير معلومات التي تريد إرسالها إلى دالة 

/**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct($details)
    {
        $this->details = $details;
    }

ثم في دالة build قم بوضع القالب الذي تود أن يظهر في رسالة البريد الألكتروني 

/**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        //return $this->view('view.name');
        return $this->subject('Mail from')
                    ->view('emails.contactus');
    }

فيكون كامل الملف كالتالي 

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class ContactUs extends Mailable
{
    use Queueable, SerializesModels;

    public $details; 
    
    
    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct($details)
    {
        $this->details = $details;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        //return $this->view('view.name');
        return $this->subject('Mail from')
                    ->view('emails.contactus');
    }
}

ثم قم بإنشاء ملف القالب الخاص بعرض الرسالة في الأيميل بداخل مجلد emails باسم ملف contactus.blade.php ويكون فيه القالب  الذي تستخدمه أو تود إضهار البيانات باستخدامه

<!DOCTYPE html>
<html>
<head>
    <title>هنا العنوان</title>
</head>
<body>
    <h1>{{ $details['name'] ?? '' }}</h1>
    <p>{{ $details['email'] ?? '' }}</p>
    <p>{{ $details['phone'] ?? '' }}</p>
    <p>{{ $details['subject'] ?? '' }}</p>
    <p>{{ $details['message'] ?? '' }}</p>
  
</body>
</html>

ثم قم بإنشاء ملف لتقوم بعرض نموذج الاتصال الذي تريد أن يتم إرسال الرسالة من خلاله و عند الضغط على زر الإرسال قم بإرسال البيانات إلى البريد الألكتروني الذي تريد أن تصله الرسالة بهذا الشكل 

$details = [
  'name' => $request->name,
  'email' => $request->email,
  'phone' => $request->phone,
  'subject' => $request->subject,
  'message' => $request->message,
];
       

\Mail::to('هنا البريد الذي ستصله الرسالة')->send(new \App\Mail\ContactUs($details));

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...