Reputation: 778
I'm developing a site using Laravel 4 and would like to send myself ad-hoc emails during testing, but it seems like the only way to send emails is to go through a view.
Is it possible to do something like this?
Mail::queue('This is the body of my email', $data, function($message)
{
$message->to('[email protected]', 'John Smith')->subject('This is my subject');
});
Upvotes: 20
Views: 16212
Reputation: 60038
As mentioned in an answer on Laravel mail: pass string instead of view, you can do this (code copied verbatim from Jarek's answer):
Mail::send([], [], function ($message) {
$message->to(..)
->subject(..)
// here comes what you want
->setBody('Hi, welcome user!');
});
You can also use an empty view, by putting this into app/views/email/blank.blade.php
{{{ $msg }}}
And nothing else. Then you code
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');
});
And this allows you to send custom blank emails from different parts of your application without having to create different views for each one.
Upvotes: 41
Reputation: 574
If you want to send just text, you can use included method:
Mail::raw('Message text', function($message) {
$message->from('[email protected]', 'Laravel');
$message->to('[email protected]')->cc('[email protected]');
});
Upvotes: 13
Reputation: 1769
No, with out of the box Laravel Mail you will have to pass a view, even if it is empty. You would need to write your own mailer to enable that functionality.
Upvotes: 0