★★★.envファイルにメール送信のための設定★★★
MAIL_ADMIN=○○@○○
Laravel Sailの場合 http://localhost:8025/
★★★CONFIGファイルの設定(configの中の mail.phpファイル)★★★
admin'=>env('MAIL_ADMIN', null),
★★★ContactContoroller.php★★★
use Illuminate\Support\Facades\Mail;
use App\Mail\ContactForm;
public function store(Request $request)
{
$inputs=request()->validate([
'title'=>'required|max:255',
'email'=>'required|email|max:255',
'body'=>'required|max:1000',
]);
Contact::create($inputs);
Mail::to(config('mail.admin'))->send(new ContactForm($inputs));
Mail::to($inputs['email'])->send(new ContactForm($inputs));
return back()->with('message','メールを送信しました。');
}
別例1)
$amount=$payload['data']['object']['amount'];
Mail::to('test@test')->send(new \App\Mail\NewMember($amount));
return 'OK';
新規Mailableクラスを作成
app/Mail/ContactForm.php
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
use Illuminate\Queue\SerializesModels;
use Illuminate\Mail\Mailables\Address;
class ContactForm extends Mailable
{
use Queueable, SerializesModels;
public $inputs;
public function __construct($inputs)
{
$this->inputs = $inputs;
}
//件名
public function envelope()
{
return new Envelope(
subject: 'お問い合わせを受け付けました',
);
}
//メールの中身となるビューファイルの場所を指定
public function content()
{
return new Content(
//resources/views/emailsの中にcontact.blade.php
view: 'emails.contact',
);
}
//添付ファイルを設定
public function attachments()
{
return [];
}
}
★★★メール本文の作成★★★
resources/views/contact.blade.php
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>お問い合わせを受け付けました</title>
</head>
<body>
<p>お問い合わせ内容は次のとおりです。</p>
ーーーー
<p>件名:{{$inputs['title']}}</p>
<p>お問い合わせ内容:{{$inputs['body']}}</p>
<p>メールアドレス:{{$inputs['email']}}</p>
ーーーー
<p>担当者よりご連絡いたしますので、今しばらくお待ちください。</p>
</body>
</html>
別例1)
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>お支払い</title>
</head>
<body>
{{$amount}}円のお支払いがありました。
</body>
</html>