Отправка электронной почты в Laravel с помощью пользовательского HTML

Мне нужно отправлять электронные письма, но у меня уже есть HTML-код, я не хочу использовать laravel blade, потому что мне нужно применить CSS-Inliner к HTML, так вот так я генерирую html:

getRenderedView($viewData) { //code $html = View::make('email.notification', $viewData)->render(); $this->cssInliner->setCSS($this->getCssForNotificationEmail()); $this->cssInliner->setHTML($html); return $this->cssInliner->convert(); } 

Итак, чтобы отправить почту с Laravel, вы обычно делаете что-то вроде этого:

 Mail::send('emails.welcome', $data, function($message) { $message->to('foo@example.com', 'John Smith')->subject('Welcome!'); }); 

Но я не хочу передавать представление, у меня уже есть html, как я могу это сделать?

Если я прав в том, чего вы хотите достичь, чтобы обойти это, я создал представление под названием echo.php и внутри, что только echo $ html.

Присвойте свой html чему-то вроде $ data ['html'].

Затем ниже передайте свои данные ['html'] в эхо-представление.

Mail::send('emails.echo', $data, function($message) { $message->to('foo@example.com', 'John Smith')->subject('Welcome!'); });

Дайте мне знать, как вы поживаете.

Тело не доступно из крышки.

Вы можете создать быстрое сообщение вручную:

  $message = \Swift_Message::newInstance(); $message->setFrom($messageToParse->template['fromEmail']); $message->setTo($messageToParse->to['email']); $message->setBody($messageToParse->body); $message->addPart($messageToParse->body, 'html contents'); $message->setSubject('subject'); 

Но тогда вам нужно создать транспорт:

  $mailer = self::setMailer( [your transport] ); $response = $mailer->send($message); 

Я хочу поделиться советом, который может помочь отправлять электронные письма без «клинка».

Функция Laravel Mail на самом деле является оберткой для Swift. Просто назначьте пустые массивы в $ template и $ data, я имею в виду первые 2 параметра функции, а затем остальное внутри обратного вызова.

 Mail::send([], [], function($message) use($to, $title, $email_body) { $message->setBody($email_body)->to($to)->subject($title); }); 
 $data = array( 'email' => 'sample@domail.com', 'first_name' => 'Laravel', 'from' => 'sample@domail.comt', 'from_name' => 'learming' ); Mail::send( 'email.welcome', $data, function( $message ) use ($data) { $message->to( $data['email'] )->from( $data['from'], $data['first_name'] )->subject( 'Welcome!' ); });