● LaravelでSendgrid API 使ってメールを送信する
$to_emails = ['user01@test.com','user02@test.com'];
$mail_subject = 'メール送信テストです';
$mail_content = 'メール本文です';
$type = 'html'; // html or text
$files_info = [];
$email = new \SendGrid\Mail\Mail();
$email->setFrom("from@user.com", "送信 太郎" ); // メールアドレス, 日本語名
$email->setSubject( $mail_subject );
// To
foreach ($to_emails as $to) {
$email->addTo( $to );
}
// 添付ファイル
foreach ($files_info as $file ) {
$file_encoded = base64_encode( file_get_contents($file['path']) );
$mimetype = \GuzzleHttp\Psr7\mimetype_from_filename( $file['original_name'] );
$email->addAttachment( $file_encoded, $mimetype, $file['original_name'], "attachment" );
}
// APIキー
$sendGrid = new \SendGrid( $sendgrid_api_key );
if ( strcmp($type, 'html') == 0 ){
$email->addContent( "text/html", $mail_content );
}
else {
$email->addContent( "text/plain", $mail_content );
}
// 送信
try {
$sendGrid->send($email);
return true;
} catch (Exception $e) {
Log::debug($e->getMessage());
throw new Exception('SendGridエラー');
return false;
}