2016-05-30 5 views
1

Я пытаюсь отправить электронную почту в laravel5.1 и обнаружил, что почта: Отправить используемые шаблоны просмотра, как показано ниже:Laravel 5.1: Как передать тело и тело тела HTML без использования представления?

Mail::send(['html.view', 'text.view'], $data, $callback); 

Проблемы у меня есть готовый отправить HTML тело и TEXT тело поступают из базы данных. Как установить вид html и текстовое представление, если контент поступает из базы данных, как показано ниже:

$html_body = $row['Html_Body']; // holds html content 
$text_body = $row['Text_Body']; // holds text content 

Спасибо.

ответ

0

Чтобы прикрепить текст/простое сообщение, мы можем использовать метод addParts, как показано ниже

$message->to($email_details['to']) 
->subject($email_details['subject']) 
->from($email_details['from']) 
->setBody($email_details['html'], 'text/html'); 

/* add alternative parts with addPart()*/ 
$message->addPart($email_details['text'], 'text/plain'); 
1

вы можете использовать:

Mail::send(['text' => $text_body], $data, $callback); 
+0

Как насчет HTML? Могу ли я добавить Mail :: send (['text' => $ text_body, 'html' => $ html_body], $ data, $ callback); –

+0

текст - это переменная, содержащая текст, который будет отправлен, поэтому вам нужно будет объединить обе ваши переменные, –

0

вы можете передать данные на ваш взгляд, как этот

$data = []; 
$data['Html_Body']; 
$data['Text_Body']; 
\Mail::send('html.view', $data , function($message) 
{ 
    $message->to($email)->subject($subject); 
}); 

и использовать данные, которые вы прошли к представлению в качестве переменных

$Html_Body; 
$Text_Body; 
+0

Я не хочу использовать какое-либо представление. Вот что я упомянул в своем вопросе. –

0
$mailBody = View::make('my_mail', ['name' => 'fknight']); 
    $contents = (string) $mailBody; 
    // or 
    $contents = $mailBody->render(); 

это лучший способ вместо usin г обычный HTML в переменной