[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
Renato Machado
Criador Renato Machado 28/03/2023

professor Carlos, estou precisando criar uma api que recebe os dados de um formalurio em Vue3 e envia para meu email, mais não estou conseguindo pode me dar um help?

 

Manager Carlos Ferreira 28/03/2023

Olá, Renato!
Tudo bem?

Ajudo sim, claro.

O que você tem pronto? Onde travou? Qual sua dificuldade?
Compartilha comigo por favor.

Carlos Ferreira
Criador Renato Machado 28/03/2023

Criei o arquivo sendMail na pasta Mail

codigo abaixo:

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;

use Illuminate\Contracts\Queue\ShouldQueue;

use Illuminate\Mail\Mailable;

use Illuminate\Queue\SerializesModels;

 

class SendMail extends Mailable

{

    use Queueable, SerializesModels;

 

    public $mailData;

    /**

     * Create a new message instance.

     *

     * @return void

     */

    public function __construct($mailData)

    {

        $this->mailData = $mailData;

    }

 

    /**

     * Build the message.

     *

     * @return $this

     */

    public function build()

    {

        return $this->subject('Enviado pelo site')->view('sendmail');

    }

}

criei o Controller EmailController

codigo abaixo:

<?php

 

namespace App\Http\Controllers\Api;

 

use Illuminate\Http\Request;

use App\Http\Controllers\Controller;

use Mail;

use App\Mail\SendMail;

 

 

class EmailController extends Controller

{

    public function index()

    {

      

        $testMailData = [

            'title' => 'Test Email From AllPHPTricks.com',

            'body' => 'This is the body of test email.'

        ];

 

        Mail::to('[email protected]')->send(new SendMail($testMailData));

 

        dd('Success! Email has been sent successfully.');

    }

}

 

Criei a rota api

codigo abaixo:

 Route::apiResource('/sendEmail', EmailController::class);

Atualizei os dados do meu servidor no .env

e criei a view sendmail para envio

esta funcionando, porem não sei como receber do vue os dados para enviar para meu email

Renato Machado
Criador Renato Machado 28/03/2023

Atualizando os arquivos professor Carlos, consegui fazer chegar ao meu email

alterei nos arquivos 

SendEmail

<?php

 

namespace App\Mail;

 

use Illuminate\Bus\Queueable;

use Illuminate\Contracts\Queue\ShouldQueue;

use Illuminate\Mail\Mailable;

use Illuminate\Queue\SerializesModels;

 

class SendMail extends Mailable

{

    use Queueable, SerializesModels;

 

    public $mailData;

    /**

     * Create a new message instance.

     *

     * @return void

     */

    public function __construct($mailData)

    {

        $this->mailData = $mailData;

    }

 

    /**

     * Build the message.

     *

     * @return $this

     */

    public function build()

    {

        return $this->subject('Enviado pelo site')->view('sendmail', $this->mailData);

    }

}

e no controller EmailController

<?php

 

namespace App\Http\Controllers\Api;

 

use Illuminate\Http\Request;

use App\Http\Controllers\Controller;

use Mail;

use App\Mail\SendMail;

 

 

class EmailController extends Controller

{

    public function index(Request $request)

    {

        //$data = $request->all();

      

        $data = [

            'remetente' => $request->remetente,

            'assunto' => $request->assunto

        ];

                

        Mail::to('[email protected]')->send(new SendMail($data));

        

        return response()->json($data, 201);

 

    }

}

Porem como faço para receber uma resposta no vue do tipo sua "mensagem foi enviada com sucesso"

Renato Machado
Criador Renato Machado 28/03/2023

Resolvido Professor Carlos

Renato Machado
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!