領収証発行サービス
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

44 Zeilen
983B

  1. <?php
  2. namespace App\Mail;
  3. use App\Middlewares\Now;
  4. use App\Models\Email;
  5. use App\Util\DateUtil;
  6. use Exception;
  7. use Illuminate\Support\Facades\Log;
  8. use Illuminate\Support\Facades\Mail;
  9. class Sender
  10. {
  11. public static function send(string $emailId)
  12. {
  13. $email = Email::findOrFail($emailId);
  14. info("メール送信", [
  15. 'id' => $email->id,
  16. 'email' => $email->email,
  17. 'mailer' => $email->type,
  18. ]);
  19. try {
  20. Mail::to($email->email)
  21. ->send(new TextMail($email->subject, $email->content));
  22. } catch (Exception $e) {
  23. Log::error("メール送信失敗", [
  24. 'id' => $email->id,
  25. 'email' => $email->email,
  26. 'mailer' => $email->type,
  27. ]);
  28. $email->is_failed = true;
  29. $email->save();
  30. throw $e;
  31. }
  32. $email->send_datetime = DateUtil::now();
  33. $email->save();
  34. }
  35. }