يوسف محمد49 نشر 21 يونيو أرسل تقرير نشر 21 يونيو كيف يمكنني ارسال بريد الكتروني بدون ان يكون المستخدم مسجل دخول في laravel 3 اقتباس
1 Taha Khaled2 نشر 21 يونيو أرسل تقرير نشر 21 يونيو ارسال رسائل البريد الكتروني في لارافل بسيطه وهتحتاجها في معظم مشاريعك يمكنك اتباع الخطوات التاليه لتنفيذ ما طلبت اولا في ملف .env يجب ان تضع اعدادات البريد الاكتروني الخاص بالاسضافه سواء كانت هوستينجر او جودادي .. مثال علي اعدادت هوستينجر MAIL_MAILER=smtp MAIL_HOST=smtp.hostinger.com MAIL_PORT=465 MAIL_USERNAME=academy@hsoub.com البريد الكتروني الخاص باستضافة مشروعك MAIL_PASSWORD="************" كلمة السر الخاصه بالبريد MAIL_ENCRYPTION=ssl MAIL_FROM_ADDRESS="academy@hsoub.com" عنوان البريد المرسل MAIL_FROM_NAME="${APP_NAME}" ثما قم بإنشاء ملف Mailable في Laravel لكي تحدد كيفية عرض البريد الإلكتروني ومحتواهعن طريق الامر التالي php artisan make:mail TestEmail سيتم انشاء ملف تلقائي بهذه الاسم TestEmail ولان ساعطيك مثال كامل لارسال otp عبر البريد من احد المشاريع التي عملت عليها بعد انشاء الملف يمكنك اعداده بهذه الطريقه class TestEmail extends Mailable { use Queueable, SerializesModels; public $message; public $fromEmail; public $subject; public $email; /** * Create a new message instance. * * @return void */ public function __construct($message, $fromEmail, $subject, $email) { $this->message = $message; $this->fromEmail = $fromEmail; $this->subject = $subject; $this->email = $email; } /** * Build the message. * * @return $this */ public function build() { $otp = $this->generateOtp($this->email); return $this->view('email', ['code' => $otp, 'username' => "Guest", 'massge' => $this->message, "subject" => $this->subject]); } protected function generateOtp($email) { $otp = new Otp; $otpCode = $otp->generate($email, 'numeric', 6, 60); return (string) $otpCode->token; } } هذه هي الخصائص العامة (public properties) للفئة تحمل قيم متعلقة برسالة البريد الإلكتروني مثل الرسالة نفسها، البريد الإلكتروني المُرسل منه، الموضوع، وعنوان البريد الإلكتروني المُرسل إليه. public $message;, public $fromEmail;, public $subject;, public $email دالة generateOtp($email) مسؤوله عن تُوليد رمز OTP وتستقبل بريدًا إلكترونيًا كمدخل بنسبه لهذه الجزء من الكود return $this->view('email', ['code' => $otp, 'username' => "Guest", 'massge' => $this->message, "subject" => $this->subject]); هذا الجزء يُرسل البريد الإلكتروني باستخدام قالب محدد ("email.blade.php" ) ويمرر البيانات إلى القالب مثل الرمز OTP واسم المستخدم والرسالة والموضوع. الخطوه الثانيه هي انشاء قالب email سكون ملف blade بسيط مثل هذه <!DOCTYPE html> <html> <head> <style> body { font-family: Arial, sans-serif; background-color: #f7f9fc; padding: 50px; } .container { max-width: 600px; background-color: #ffffff; padding: 20px; border-radius: 8px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); margin: 0 auto; } .header { padding: 10px 0; text-align: center; border-top-left-radius: 8px; border-top-right-radius: 8px; } .header img { max-width: 120px; } .company-name { font-size: 20px; font-weight: bold; margin-top: 10px; } .content { padding: 20px; line-height: 1.5; } .otp { font-size: 24px; font-weight: bold; letter-spacing: 2px; text-align: center; margin: 20px 0; color: #333; background-color: #f1f1f1; padding: 10px 0; border-radius: 5px; } .footer { text-align: center; padding: 20px 0; color: #888888; font-size: 12px; } /* Dark mode styles */ @media (prefers-color-scheme: dark) { body { background-color: #333; } .container { background-color: #444; } .header, .content, .footer { color: #eee; } .otp { color: #444; background-color: #eee; } } </style> </head> <body> <div class="container"> <div class="header"> <img src="https://adrenaline-edu.com/images/1.png" alt="https://adrenaline-edu.com/images/1.png"> </div> <div class="content"> <p>Hello, {{ $username }}</p> <p>{{ $massge }}:</p> <div class="otp">{{ $code }}</div> <p>This OTP is valid for 60 minutes. If you didn't request this code, please ignore this email.</p> </div> </div> </body> </html> الخطوه الثالثه والاخير هي ارسال البريد الكتروني عن طريق الكود التالي $message = "Please use the following OTP to verify your email address"; $fromEmail = "adrenaline@adrenaline-edu.com"; $subject = "Verification needed"; Mail::to($email)->send(new TestEmail($message, $fromEmail, $subject, $inpout)); سيظهر معك كما موضع بصوره 1 اقتباس
1 Khaled Osama3 نشر 21 يونيو أرسل تقرير نشر 21 يونيو أول شيء، لازم نضبط إعدادات البريد في Laravel. ستحتاج تعدل في ملف .env عشان تضيف بيانات خادم البريد (SMTP). الخطوة 1: تعديل ملف البيئة .env ملف .env هو المكان الذي تحفظ فيه إعدادات البيئة الخاصة بمشروعك، مثل إعدادات قاعدة البيانات والبريد الإلكتروني. تحتاج لإعداد بيانات SMTP الخاصة بخادم البريد الذي ستستخدمه لإرسال الرسائل. افتح ملف .env الموجود في جذر مشروعك وأضف الإعدادات التالية (استبدل بالقيم المناسبة): MAIL_MAILER=smtp MAIL_HOST=smtp.example.com # عنوان خادم البريد (مثل smtp.gmail.com إذا كنت تستخدم Gmail) MAIL_PORT=587 # المنفذ المستخدم (587 لـ TLS، 465 لـ SSL) MAIL_USERNAME=your_email@example.com # بريدك الإلكتروني MAIL_PASSWORD=your_email_password # كلمة المرور لبريدك الإلكتروني MAIL_ENCRYPTION=tls # نوع التشفير (tls أو ssl) MAIL_FROM_ADDRESS=your_email@example.com # عنوان البريد الذي سترسل منه الرسائل MAIL_FROM_NAME="${APP_NAME}" # اسم المرسل الذي سيظهر في البريد الإلكتروني الخطوة 2: إنشاء بريد إلكتروني جديد Mailable هو كلاس مخصص في Laravel لتسهيل عملية إرسال البريد الإلكتروني. لإنشاء Mailable جديد، افتح التيرمنال في جذر مشروعك واستخدم الأمر التالي: php artisan make:mail ExampleMail هذا الأمر سينشئ ملفًا جديدًا في app/Mail/ExampleMail.php. هذا الملف سيحتوي على القالب الأساسي للرسالة التي سترسلها. الخطوة 3: تخصيص البريد الان، نفتح الملف ExampleMail.php ونخصصه عشان نضيف التفاصيل اللي نريدها في البريد: <?php namespace App\Mail; use Illuminate\Bus\Queueable; use Illuminate\Mail\Mailable; use Illuminate\Queue\SerializesModels; class ExampleMail 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->subject('Test Email') // موضوع البريد الإلكتروني ->view('emails.example'); // عرض القالب } } الخطوة 4: إنشاء قالب البريد الإلكتروني القالب هو الملف الذي يحدد شكل ومحتوى البريد الإلكتروني. لنقم بإنشاء قالب بسيط. افتح مجلد resources/views وأنشئ مجلد جديد باسم emails، ثم أنشئ ملف جديد باسم example.blade.php وضع فيه المحتوى التالي: <!DOCTYPE html> <html> <head> <title>Test Email</title> </head> <body> <h1>{{ $details['title'] }}</h1> <p>{{ $details['body'] }}</p> </body> </html> في هذا القالب، نستخدم متغيرات title و body التي سنمررها عند إرسال البريد الإلكتروني. الخطوة 5: كتابة كود الإرسال الآن، نحتاج لكود يقوم بإرسال البريد الإلكتروني. يمكننا وضع هذا الكود في أي مكان نريد، سواء في Controller أو مباشرة في Route. لنبسط الأمور، سنضعه في Route. افتح ملف routes/web.php وأضف الكود التالي: use Illuminate\Support\Facades\Route; use App\Mail\ExampleMail; use Illuminate\Support\Facades\Mail; Route::get('/send-email', function () { // تفاصيل الرسالة $details = [ 'title' => 'Mail from Laravel Application', 'body' => 'This is a test email sent from Laravel.' ]; // إرسال البريد الإلكتروني Mail::to('recipient@example.com')->send(new ExampleMail($details)); // رسالة تأكيد الإرسال return 'Email sent successfully!'; }); في هذا الكود: قمنا بإنشاء Route جديدة باسم /send-email. داخل هذا Route، قمنا بتعريف تفاصيل الرسالة مثل title و body. استخدمنا Mail::to لتحديد مستقبل الرسالة وأرسلنا الرسالة باستخدام ExampleMail. الان لتشغيل التطبيق واختبار البريد الإلكتروني افتح متصفحك واذهب إلى http://your-domain/send-email (استبدل your-domain بالعنوان الفعلي لتطبيقك). إذا كانت الإعدادات صحيحة، سترى رسالة "Email sent successfully!" والبريد الإلكتروني سيتم إرساله إلى العنوان المحدد. 1 اقتباس
السؤال
يوسف محمد49
كيف يمكنني ارسال بريد الكتروني بدون ان يكون المستخدم مسجل دخول في laravel
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.