Laravel Setup mail

  • gmail

https://myaccount.google.com/u/lesssecureapps

for production use app password using-gmail-smtp-server-to-send-email-in-laravel

  • .env
MAIL_MAILER=smtp
MAIL_HOST=smtp.googlemail.com
MAIL_PORT=465
MAIL_USERNAME=address@gmail.com
MAIL_PASSWORD=passwrod
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=address@gmail.com
MAIL_FROM_NAME="${APP_NAME}"

  • mail
<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class SendMail extends Mailable
{
    use Queueable, SerializesModels;

    public $details;
    
    public function __construct($details)
    {
        $this->details = $details;
    }
    
    public function build()
    {
        return $this->subject('[PERCOBAAN]')
                    ->view('emails.send');
    }
}

  • controller (and route)
<?php

namespace App\Http\Controllers;
use App\Mail\SendMail;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;

class MailController extends Controller
{
    public function send()
    {
        $details = [
            'title' => 'Daftar Test',
            'body'  => 'Test satu dua tiga'
        ];

        Mail::to("destinationaddress@gmail.com")->send(new SendMail($details));
    }
}

  • view

Pendaftaran Studi Turki

<html>
    <head>
        <title>Title here</title>
    </head>
    <body>
        <h1>{{$details['title']}}</h1>
        <p>{{$details['body']}}</p>
    </body>
</html>

Laravel Quick Deploy


sudo apt-get updatesudo apt-get update
sudo apt-get install nginx
sudo apt-get install mysql-server
sudo mysql_secure_installation
sudo apt-get install php-fpm php-mysql php-mbstring
sudo nano /etc/php/7.0/fpm/php.ini
sudo systemctl restart php7.0-fpm
sudo nano /etc/nginx/sites-available/defaultsudo nginx -t
sudo systemctl reload nginx
sudo mkdir -p /var/www/foldr
sudo nano /etc/nginx/sites-available/default
sudo service nginx restart
sudo fallocate -l 1G /swapfilesudo mkswap /swapfile
sudo swapon /swapfile
cd ~
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
cd /var mkdir repo && cd repo mkdir site.git && cd site.git git init --bare
cd hooks/ sudo nano post-receive sudo chmod +x post-receive
exit
cd /localfldr
git remote add production ssh://root@45.76.191.240/var/repo/site.git
git push production master
cd /var/www/foldr/ composer install --no-dev
sudo chown -R :www-data /var/www/foldr
sudo chmod -R 775 /var/www/foldr/storage
sudo chmod -R 775 /var/www/foldr/bootstrap/cache
cp .env.example .env sudo nano .env APP_ENV=production APP_DEBUG=false DB_HOST=localhost
php artisan key:generate
sudo nano config/app.php 'url'=>'http://yourdomain_or_ip', 'timezobe' => 'Asia/Jakarta',
php artisan config:cache
php artisan migrate
sudo nano /etc/nginx/sites-available/default location / { try_files $uri $uri/ /index.php?$query_string; }
sudo systemctl reload nginx