-
Notifications
You must be signed in to change notification settings - Fork 49
Send Email
JP Barbosa edited this page Mar 15, 2016
·
6 revisions
mkdir app/Mailers
nano app/Mailers/ArticleMailer.php
<?php
namespace App\Mailers;
use Mail;
use App\Article;
class ArticleMailer
{
public function recommendTo($email, Article $article)
{
Mail::send('emails.article', ['article' => $article], function ($message) use ($email) {
$message->to($email)->subject('Recommendation');
});
}
}
mkdir resources/views/emails
nano resources/views/emails/article.blade.php
<p>Dear friend,</p>
<p>
Check this great article:
{!! link_to_route('articles.show', $article['title'], $article['id']) !!}
</p>
nano config/mail.php
...
'from' => [
'address' => env('MAIL_ADDRESS'),
'name' => env('MAIL_NAME')
],
...
nano .env
...
MAIL_DRIVER=smtp
MAIL_HOST=smtp.yourmail.com
MAIL_PORT=587
MAIL_USERNAME=youruser
MAIL_PASSWORD=yourpassword
MAIL_ENCRYPTION=null
MAIL_ADDRESS=youruser@yourmail.com
MAIL_NAME="Laravel Apz"
php artisan tinker
$mailer = new \App\Mailers\ArticleMailer
$mailer->recommendTo('me@domain.local', \App\Article::first());
php artisan make:request RecommendationRequest
nano app/Http/Requests/RecommendationRequest.php
...
public function authorize()
{
return true;
}
public function rules()
{
return [
'email' => 'required|email'
];
}
...
php artisan make:controller RecommendationsController
nano app/Http/Controllers/RecommendationsController.php
<?php
namespace App\Http\Controllers;
use Request;
use App\Http\Requests\RecommendationRequest;
use App\Http\Controllers\Controller;
use App\Article;
use App\Mailers\ArticleMailer;
class RecommendationsController extends Controller
{
public function store(RecommendationRequest $request, Article $article, ArticleMailer $mailer)
{
$mailer->recommendTo($request->input('email'), $article);
return ['Your recommendation was sent.'];
}
}
nano app/Http/routes.php
...
Route::resource('articles.recommendations', 'RecommendationsController', ['only' => ['create', 'store']]);
php artisan serve
curl -H "Accept: application/json" \
http://localhost:8000/articles/1/recommendations \
--data "email=user@domain.local"
["Your recommendation was sent."]
tail storage/logs/laravel.log
git add .
git commit -m "Add mailer to recommend article"
Next step: Send Email Views
- Setup
- Basic CRUD
- Validation
- Views
- Association
- Association Controller
- Association Views
- Basic Template
- Bootstrap
- Bootstrap CRUD
- Alerts
- Welcome Page
- Ajax CRUD
- Send Email
- Send Email Views
- Jobs Queue
- Captcha
- Async External Content
- Cached External Content
- Tests Setup
- Functional Tests
- Acceptance Tests
- Continuous Integration
- Deploy with Heroku
- Deploy with Forge
- Update README