Laravel SMTP Email

2019-05-06 14:31发布

Start working with Laravel 4.2 I tried to send email using Gmail STMP server. Below is my app/config/mail.php.

return array(
    'driver' => 'smtp',
    'host' => 'smtp.gmail.com',
    'port' => 465,
    'from' => array('address' => 'sample_address@gmail.com', 'name' => 'Sample'),
    'encryption' => 'tls',
    'username' => 'sample_address@gmail.com',
    'password' => 'sample password',
    'sendmail' => '/usr/sbin/sendmail -bs',
    'pretend' => false,
);

Below is my php code.

<!-- app/views/emails/welcome.php -->
Mail::send('emails.welcome', 'Laravel Admin', function($msg) {
   $msg->from('sample_address@gmail.com', 'Laravel Admin');
   $msg->to('sample_receiver@gmail.com');
});

But it does not work. I have already configured my XAMPP php.ini on my MAC OSX. It only works when sending a normal PHP mail, not SMTP. The error message that I've got from Laravel on the view page is 'Error in exception handler'. I would like to see more error information but I don't know how to get more info. What is wrong with my code? What else do I need to do or configure? Thank you!

3条回答
你好瞎i
2楼-- · 2019-05-06 15:14

you can put your email and name in Input

Input::merge(array('email'=>'sample_receiver@gmail.com','name'=>'sample_name')); 

Mail::send('emails.welcome', 'Laravel Admin', function($msg) {
   $msg->from('sample_address@gmail.com', 'Laravel Admin');
   $msg->to(Input::get('email'), Input::get('name'))->subject('You have');
});

also change 'encryption'

return array(
    'driver' => 'smtp',
    'host' => 'smtp.gmail.com',
    'port' => 465,
    'from' => array('address' => 'sample_address@gmail.com', 'name' => 'Sample'),
    'encryption' => 'ssl',
    'username' => 'sample_address@gmail.com',
    'password' => 'sample password',
    'sendmail' => '/usr/sbin/sendmail -bs',
    'pretend' => false,
);
查看更多
手持菜刀,她持情操
3楼-- · 2019-05-06 15:19

When you are having problems with sending mails via gmail, try this. It worked for me.

Login with your gmail account and then go to: https://accounts.google.com/b/0/DisplayUnlockCaptcha

and click continue. Then, you have few minutes to send your mail with your code. After this, Google will allow sign in to that account from the new source.

查看更多
我想做一个坏孩纸
4楼-- · 2019-05-06 15:28

You should change 'encryption' for ssl and in your gmail must be enabled IMAP access in config

查看更多
登录 后发表回答