Laravel hỗ trợ cả 2 dạng gửi mail là plain/text và html.
Bạn có thể tham khảo code kế thừa từ class Mailable.
Ví dụ:
class ConsolidatedEmail extends Mailable
{
use Queueable, SerializesModels;
protected $user;
public function __construct(User $user)
{
$this->user = $user;}
public function build()
{
return $this->view('email.consolidated_email_html', [
'user' => $this->user,
])->text('email.consolidated_email', [
'user' => $this->user,
])->subject('Test');
}
}
Ở đây sẽ có 2 file ở resources/views/email là:
- email.consolidated_email_html.blade.html: dùng cho hiển thị html
- email.consolidated_email.blade.html: dùng cho plain text
Bên trên là trình bày về gửi mail dạng plain text. Chúng ta nói về lỗi trong plain text:
Giả sử có đoạn code sau:
@foreach($answer_users as $answer_user)
- {{ $answer_user->survey->name }}
Deadline: {{ $answer_user->survey->end_date }} (UTC)
Basic Points: {{ number_format($answer_user->basic_point_value) }} points
{{ \App\Helpers\RedirectHelper::getRedirectUrlWithLoginedUrl($answer_user->user, 'user.survey.from_token', [ 'token' => $answer_user->token ]) }}
@endforeach
Đây là phần email hiển thị ở Mailhog:
Trên hình, bạn sẽ thấy là có đôi khi có dòng bị liền với dòng bên trên.
Cách sửa: bên thêm 2 dấu space vào cuối mỗi dòng sẽ tránh được lỗi này.
Chú ý: có thể IDE của bạn tự động xóa 2 space này đi vì nghĩ nó không cần thiết. Bạn cần tắt phần tự động này của IDE.