Как отправить сообщение с Laravel 4 без использования представления?
Я разрабатываю сайт, используя Laravel 4 и хотел бы отправлять собственные рекламные сообщения во время тестирования, но он кажется единственным способ отправки сообщений электронной почты - это просмотреть представление.
Можно ли сделать что-то вроде этого?
Mail::queue('This is the body of my email', $data, function($message)
{
$message->to('[email protected]', 'John Smith')->subject('This is my subject');
});
Ответы
Ответ 1
Как упоминалось в ответе Laravel mail: передать строку вместо представления, вы можете сделать это (код скопирован дословно из ответа Jarek):
Mail::send([], [], function ($message) {
$message->to(..)
->subject(..)
// here comes what you want
->setBody('Hi, welcome user!');
});
Вы также можете использовать пустой вид, помещая его в приложение /views/email/blank.blade.php
{{{ $msg }}}
И ничего больше. Затем вы кодируете
Mail::queue('email.blank', array('msg' => 'This is the body of my email'), function($message)
{
$message->to('[email protected]', 'John Smith')->subject('This is my subject');
});
И это позволяет отправлять пользовательские пустые письма из разных частей приложения без необходимости создавать разные представления для каждого из них.
Ответ 2
Если вы хотите отправить только текст, вы можете использовать включенный метод:
Mail::raw('Message text', function($message) {
$message->from('[email protected]', 'Laravel');
$message->to('[email protected]')->cc('[email protected]');
});
Ответ 3
Нет, если вы не используете Laravel Mail, вам нужно будет просмотреть представление, даже если оно пустое. Вам нужно будет написать свою собственную почтовую программу, чтобы включить эту функцию.