Hello Reader's ,
Today in my blog, I am going to explain about the mail function in CakePHP3 and how you can use it for sending a mail. It is simple to implement in your project.
First, you need to configure email transports and email delivery profiles in your config/app.php. Here i am using gmail ssl for sending a mail.
Add gmail SSl setting in Email Transport array in app.php file
'EmailTransport' => [
'default' => [
'className' => 'Mail',
// The following keys are used in SMTP transports
'host' => 'localhost',
'port' => 25,
'timeout' => 30,
'username' => 'user',
'password' => 'secret',
'client' => null,
'tls' => null,
'url' => env('EMAIL_TRANSPORT_DEFAULT_URL', null),
],
'gmail'=> [
'host' => 'ssl://smtp.gmail.com',
'port' => 465,
'username' => 'YourEmailID@gmail.com', //your gmail address
'password' => 'YourMailPassword', //your gmail password
'className' => 'Smtp',
'log' => true,
'context' => [
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
]
]
],
],
After completing this then add below Function in the controller.
public function send_mail()
{
$msg='Hellow User';
$subject='CakePHP3 Mail';
$to=yourEmailId@domain.com;
$true=$this->sendUserEmail($to,$subject,$msg);
if($true=='1')
{
$this->Flash->success(__('Mail Send'));
return $this->redirect(['action' => 'index']);
}
else
{
$this->Flash->success(__('Error'));
return $this->redirect(['action' => 'index']);
}
}
In the above function we are passing param to another function which placed in config/appController.php.
Add Mail Library in your AppController.php file.
use Cake\Network\Email\Email;
Now add sendUserEmail () Function in appController.php
public function sendUserEmail($to,$subject,$msg)
{
$email = new Email();
$email
->transport('gmail')
->from(['yourEmailID@domain.com' => 'yourEmailID@domain.com'])
->to($to)
->subject($subject)
->emailFormat('html')
->viewVars(array('msg' => $msg))
->send($msg);
return 1;
}
1 Comment(s)