1
0

AdminMessageResponse.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. namespace App\Mail;
  3. use App\Contact;
  4. use Illuminate\Bus\Queueable;
  5. use Illuminate\Mail\Mailable;
  6. use Illuminate\Mail\Mailables\Content;
  7. use Illuminate\Mail\Mailables\Envelope;
  8. use Illuminate\Mail\Mailables\Headers;
  9. use Illuminate\Queue\SerializesModels;
  10. class AdminMessageResponse extends Mailable
  11. {
  12. use Queueable, SerializesModels;
  13. /**
  14. * Create a new message instance.
  15. */
  16. public function __construct(
  17. public Contact $contact,
  18. ) {}
  19. /**
  20. * Get the message headers.
  21. */
  22. public function headers(): Headers
  23. {
  24. $mid = $this->contact->getMessageId();
  25. return new Headers(
  26. messageId: $mid,
  27. text: [
  28. 'X-Entity-Ref-ID' => $mid,
  29. ],
  30. );
  31. }
  32. /**
  33. * Get the message envelope.
  34. */
  35. public function envelope(): Envelope
  36. {
  37. return new Envelope(
  38. subject: ucfirst(strtolower(config('pixelfed.domain.app'))).' Contact Form Response [Ticket #'.$this->contact->id.']',
  39. );
  40. }
  41. /**
  42. * Get the message content definition.
  43. */
  44. public function content(): Content
  45. {
  46. return new Content(
  47. markdown: 'emails.contact.admin-response',
  48. with: [
  49. 'url' => $this->contact->userResponseUrl(),
  50. ],
  51. );
  52. }
  53. /**
  54. * Get the attachments for the message.
  55. *
  56. * @return array<int, \Illuminate\Mail\Mailables\Attachment>
  57. */
  58. public function attachments(): array
  59. {
  60. return [];
  61. }
  62. }