はじめに
設定ファイル
- config/services.phpに下記を追記する
'ses' => [
'key' => env('AWS_SES_ACCESS_KEY_ID'),
'secret' => env('AWS_SES_SECRET_ACCESS_KEY'),
'region' => env('AWS_SES_DEFAULT_REGION', 'ap-southeast-2'),
],
AWS_SES_ACCESS_KEY_ID=【アクセスキー】
AWS_SES_SECRET_ACCESS_KEY=【シークレットアクセスキー】
AWS_SES_DEFAULT_REGION=【SESを使うリージョン】
ルーティング設定
Route::get('/mail/new', [MailFormController::class, 'new']);
Route::post('/mail/send', [MailFormController::class, 'send']);
コントローラー
- newはお問い合わせフォーム画面用
- sendはsesからメールを送信する処理
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App;
use AWS;
class MailFormController extends Controller
{
public function new(){
return view('mail_forms.new');
}
public function send(Request $request){
$original_encoding = mb_internal_encoding();
$to = mb_encode_mimeheader(mb_convert_encoding($request->input('name'),"ISO-2022-JP-MS",$original_encoding), 'ISO-2022-JP-MS')." <".$request->input('email').">";
$ses = AWS::createClient('ses');
$ses->sendEmail([
'Source' => '<送信元メールアドレス>',
'Destination' => [
'ToAddresses' => [
$to,
],
],
'Message' => [
'Subject' => [
'Charset' => 'UTF-8',
'Data' => $request->input('subject'),
],
'Body' => [
'Text' => [
'Charset' => 'UTF-8',
'Data' => $request->input('comments'),
],
],
],
]);
return view('mail_forms.new');
}
}
View
@extends('layouts.app')
<form action="/mail/send" method="post" method="post" id="reused_form">
{{ csrf_field() }}
<div class="container">
<div class="row">
<div class="col-sm-6 form-group">
<label for="name">
Your Name:</label>
<input type="text" class="form-control" id="name" name="name" required>
</div>
<div class="col-sm-6 form-group">
<label for="email">
Email:</label>
<input type="email" class="form-control" id="email" name="email" required>
</div>
</div>
<div class="row">
<div class="col-sm-12 form-group">
<label for="subject">
Subject:</label>
<input type="subject" class="form-control" id="subject" name="subject" required>
</div>
</div>
<div class="row">
<div class="col-sm-12 form-group">
<label for="comments">
Comments:</label>
<textarea class="form-control" type="textarea" name="comments" id="comments" placeholder="Your Comments" maxlength="6000" rows="7"></textarea>
</div>
</div>
<div class="row">
<div class="col-sm-12 form-group">
<button type="submit" class="btn btn-lg btn-primary btn-block" >メール送信</button>
</div>
</div>
</div>
</form>
送信結果