api sendEmail
[Finalizado Pelo Aluno]
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?
Olá, Renato!
Tudo bem?
Ajudo sim, claro.
O que você tem pronto? Onde travou? Qual sua dificuldade?
Compartilha comigo por favor.
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
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"
Resolvido Professor Carlos
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!