LARAVEL

Laraveldə necə mail göndərə bilərəm?

27.06.2024 3 dəq oxuma

 1) app/Mail/ContactEmail.php faylı

<?php

namespace App\Mail;

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

class ContactEmail 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(): static
    {
        return $this->subject('Yeni elektron müraciət daxil oldu.')
            ->replyTo('no-reply@gmail.com', 'No reply')
            ->markdown('emails.contact-mail');
    }
}

2)resources/views/emails/contact-mail.blade.php

<p>Ad : {!! $details['name'] !!}</p>
<p>Soyad : {!! $details['surname'] !!}</p>
<p>Tel : {!! $details['phone'] !!}</p>
<p>Fayl : <a href="{!! $details['file'] !!}">Faylı endir</a></p>

{{ config('app.name') }} © {{ date('Y') }}

3) config/mail.php

<?php

return [
    'default' => env('MAIL_MAILER', 'smtp'),
    'mailers' => [
        'smtp' => [
            'transport' => 'smtp',
            'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
            'port' => env('MAIL_PORT', 587),
            'encryption' => env('MAIL_ENCRYPTION', 'tls'),
            'username' => env('MAIL_USERNAME'),
            'password' => env('MAIL_PASSWORD'),
            'timeout' => null,
            'local_domain' => env('MAIL_EHLO_DOMAIN'),
        ],
        'ses' => [
            'transport' => 'ses',
        ],
        'mailgun' => [
            'transport' => 'mailgun',
        ],
        'postmark' => [
            'transport' => 'postmark',
        ],
        'sendmail' => [
            'transport' => 'sendmail',
            'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'),
        ],
        'log' => [
            'transport' => 'log',
            'channel' => env('MAIL_LOG_CHANNEL'),
        ],
        'array' => [
            'transport' => 'array',
        ],
        'failover' => [
            'transport' => 'failover',
            'mailers' => [
                'smtp',
                'log',
            ],
        ],
    ],
    'from' => [
        'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
        'name' => env('MAIL_FROM_NAME', 'Example'),
    ],
    'markdown' => [
        'theme' => 'default',

        'paths' => [
            resource_path('views/vendor/mail'),
        ],
    ],
];

4) QiymetlendirmeController.php 

<?php

namespace App\Http\Controllers\Front;

use App\Http\Controllers\Controller;
use App\Mail\ContactEmail;
use App\Models\Qiymetlendirme;
use App\Models\StaticPages;
use App\Traits\FileUploader;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;

class QiymetlendirmeController extends Controller
{
    use FileUploader;

    public function qiymetlendirmeStore(Request $request)
    {
        $request->validate([
            'name' => 'required|string|max:255',
            'surname' => 'required|string|max:255',
            'phone' => 'required|string|max:255',
            'file' => 'required|file|mimes:xls,xlsx|max:2048',
        ], [], [
            'name' => __('static.ad'),
            'surname' => __('static.soyad'),
            'phone' => __('static.telefon'),
            'file' => 'Fayl'
        ]);

        $file = $this->fileSave('files/qiymetlendirme/', $request, 'file');

        $qiymetlendirme = Qiymetlendirme::create([
            'name' => $request->name,
            'surname' => $request->surname,
            'phone' => $request->phone,
            'file' => $file,
        ]);

        $details = [
            'name' => $qiymetlendirme->name,
            'surname' => $qiymetlendirme->surname,
            'phone' => $qiymetlendirme->phone,
            'file' => asset('files/qiymetlendirme/' . $file),
        ];

        Mail::to('rahim.suleymanov94@gmail.com')->send(new ContactEmail($details));

        return response()->json(['message' => __('static.qiymetlendirme_message')]);
    }
}

 

Digər dildə: EN