Create Laravel project or if you are beginner in laravel to visit Laravel Docs
💥 Setup following variables in your .env file
MAIL_MAILER=smtp MAIL_HOST=smtp.mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=sample@example.com MAIL_PASSWORD=************ MAIL_ENCRYPTION=ssl MAIL_FROM_ADDRESS=sample@yourdomain.com MAIL_FROM_NAME="${APP_NAME}"
Don't use google gmail smtp details. because that is not a proper method to send emails and it is not working properly.
💥 Next you go to your project folder and open terminal run following command to create mail class
php artisan make:mail Mailer
💥 Now go to app/mail folder and setup your mail class like this one
<?php namespace App\Mail; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Mail\Mailable; use Illuminate\Queue\SerializesModels; class NewMail extends Mailable { use Queueable, SerializesModels; public $details; /** * Create a new message instance. * * @return void */ public function __construct($details) { $this->details = $details; } /** * Build the message. * * @return $this */ public function build() { return $this->subject($this->details['subject']) ->view('email.contact') ->from($this->details['from'], $this->details['from']); } }
💥 After configure mailing class create a view file with .blade.php extension
<h3 class="aligncenter" style="font-family: 'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif; box-sizing: border-box; font-size: 20px; color: #000; line-height: 1.2em; font-weight: 400; text-align: center; margin: 40px 0 0;" align="center">{{ $details['title'] }}</h3>
Don't Forgot Mailing blade files only accept inline css's
💥 Finally set your controller on sending trigger process
public function new_mail(Request $request) { $details = [ 'to' => $request->to, 'from' => $request->from, 'subject' => $request->subject, 'title' => $request->title, "body" => $request->body ]; \Mail::to($request->to)->send(new \App\Mail\NewMail($details)); if (Mail::failures()) { return response()->json([ 'status' => false, 'data' => $details, 'message' => 'Nnot sending mail.. retry again...' ]); } return response()->json([ 'status' => true, 'data' => $details, 'message' => 'Your details mailed successfully' ]); }
If you want project source please visit my github profile and clone and refer it.
Top comments (2)
The controller trigger function is about
public function new_mail(Request $request)
that seems to have the wrong coding style about the function name.I think it should be the
newMail
.Yeah. but available lot of Naming convention.
you said about camel-case. but I used snake_case 🤓🤓🤓🤓🤓