Laravel 메시지 클래스 사용자 정의

6397 단어 LaravelMailMessage
이 글은 MailMessage반의 구조와 맞춤형 방법을 설명하고 HTML 메일과 텍스트 메일을 제작하여 생산성을 높이자!이것은 독창적인 보도다!

메일 메시지 학생은 무엇입니까?

php artisan make:notification에서 알림 원형을 생성할 때 계승Notification의 다음 코드가 나타납니다.
여기에 사용된 MailMessage반은 본 보도의 주역이다.
public function toMail($notifiable)
{
    return (new MailMessage)
                ->line('The introduction to the notification.')
                ->action('Notification Action', url('/'))
                ->line('Thank you for using our application!');
}
이 모형에서 MailMessage류를 이용하여 메일을 구축한 글이지만 이 MailMessage류에 대한 문서가 많지 않기 때문에 아마도 많은 상황에서 다른 코드로 완전히 바꾸거나 분위기에서 맞춤형으로 만들지 않을까요?
다음은 학급의 구조와 맞춤형 방법을 설명해 드리겠습니다.

레벨 버전


Laravel 5.7

문장의 구축


글의 구축은 호출subject(), greeting(), line() 등의 방법을 통해 이루어졌다.
각 방법이 메일의 어디로 출력되는지는 아래 그림과 같다.
왼쪽 이미지가 구축된 HTML 메일, 오른쪽 이미지가 구축된 처리, 빨간색 화살표로 대응하는 것을 표시합니다.

위 그림의 보충이지만 subject 메일의 주제입니다.
① 출력.envAPP_ENV값.
②는 링크action()의 두 번째 매개변수에서 지정한 URL을 내보냅니다.
또한 지정된 색상level()에 따라 변경됩니다.
③은 동작 단추가 출력될 때만 출력하는 주의사항입니다.
영어를 출력하는 곳은 @lang를 통해 출력되기 때문이다
Translation Strings로 교환할 수 있습니다.
텍스트 메일만 지원하는 메일 클라이언트는 다음과 같습니다.

사용한 블레이드


기본적으로 다음 blade 렌더링을 사용합니다.

HTML 메시지

  • ① 우편물의 전체적인 배치
  • Illuminate/Mail/resources/views/html/layout.blade.php
  • ② 본문 부분의 머리글/꼬리글
  • Illuminate/Mail/resources/views/html/message.blade.php
  • ③ 본문 부분의 내용
  • Illuminate/Notifications/resources/views/email.blade.php
  • 텍스트 메시지

  • ④ 메일의 전체적인 배치
  • Illuminate/Mail/resources/views/markdown/layout.blade.php
  • ⑤ 본문 부분의 머리글/꼬리글
  • Illuminate/Mail/resources/views/markdown/message.blade.php
  • ⑥ 본문 부분의 내용
  • Illuminate/Notifications/resources/views/email.blade.php
  • ①의 내용을 확인한 후 본문 부분의 텍스트가 통과Illuminate\Mail\Markdown::parse()하기 때문에 HTML 메일에서markdown 표기법을 사용할 수 있습니다.
    반면 ④에서는 통과되지 않은 경우Illuminate\Mail\Markdown::parse() 외에 strip_tags 함수를 통해 HTML 태그를 제거합니다.
    또한 ③과 ⑥는 같은 파일이다.

    블레이드 사용자 정의 방법


    ③⑥MailMessagemarkdown('your-blade-name')에서 지정한blade로 대체할 수 있습니다.
    ① ②는 /resources/views/vendor/mail/html 아래 같은 이름의 블레이드를 배치하면 사용합니다.
    ④ ⑤ /resources/views/vendor/mail/markdown 아래에 같은 이름의 블레이드를 설정하면 이 블레이드를 사용합니다.

    Markdown 정보


    MailMessage는 Markdown 태그를 사용하고 퍼스는 parsedown 를 사용합니다.( 프레젠테이션 페이지 )
    사용할 수 있는 문법은 GitHub Flavored 을 기준으로 하는 것 같다.
    또한 텍스트 메일에서 변환 전markdown을 직접 출력합니다.

    사용자 정의 스타일 정보


    HTML 메일에 적용되는 CSS를 theme라고 부르는 것 같습니다.
    기본적으로 적용되는 CSS(theme)는 다음과 같습니다.
    Illuminate/Mail/resources/views/html/themes/default.css
    사용자 정의 /resources/views/vendor/mail/html/themes/default.css 를 원한다면 그것을 사용할 것입니다.

    줄을 바꾸는 방법


    디자인 때문에 하나line()에서 줄을 바꾸고 싶은 경우가 있습니다.
    (줄 바꿈이 포함된 문자열을 입력해도 출력할 때 제거됩니다. Br 라벨도 마찬가지입니다.)
    이런 경우에는 다음과 같이 써야 한다.
    ->line(new HtmlString("1行目のテキスト<br>\n2行目のテキスト"))
    
    키모는 <br>\n를 쓴다.
    이것은 HTML 메일과 텍스트 메일에서 줄을 바꿉니다.

    마지막


    이상은 메일 메시지의 구조와 사용자 정의 방법입니다.
    도움이 된다면'좋아요'를 받을 수 있었으면 좋겠다!!

    좋은 웹페이지 즐겨찾기