无法在laravel 5中向电子邮件发件人发送电子邮件

时间:2015-12-08 08:17:39

标签: php laravel-5 sendmail

我的代码是这样的:

 public function sendMail(array $data)
    { 
        $data = explode('#', $data['id']);
        $email_from = Auth::user()->email;
        $email_to = $data[4];
        $subject = 'Send Email Test';

        $data_user = ['user_name' => $data[1], 'full_name' => $data[2].' '.$data[3] ];

        $sent = Mail::send('backend.auth.success_approved', $data_user, function ($mail) use ($email_to, $email_from, $subject)
                {
                    $mail->from($email_from)
                         ->to($email_to)
                         ->subject($subject);
                });
    }  

我在mail.php中的配置:

return [
    'driver' => env('MAIL_DRIVER', 'smtp'),
    'host' => env('MAIL_HOST', 'smtp.gmail.com'),
    'port' => env('MAIL_PORT', 587),
    'from' => ['address' => 'myemail@gmail.com', 'name' => 'myname'],
    'encryption' => env('MAIL_ENCRYPTION', 'tls'),
    'username' => env('MAIL_USERNAME', 'myemail@gmail.com'),
    'password' => env('MAIL_PASSWORD', 'mypassword'),
    'sendmail' => '/usr/sbin/sendmail -bs',
    'pretend' => false,
];

已成功发送电子邮件。但它没有动态发送者。 它是mail.php的电子邮件发件人

如何保留动态发件人?

谢谢

1 个答案:

答案 0 :(得分:0)

如果您使用的是Gmail服务器,则无法从动态发件人发送邮件。出于安全考虑,Gmail会将您的发件人地址转换为您的默认地址。为防止垃圾邮件,许多电子邮件服务器(如Gmail,Hotmail等)不允许您这样做。例如,您可以从Barak Obama的电子邮件地址发送电子邮件。

如果从动态地址发送电子邮件非常重要,您可以使用原始php函数mail()

$header = 'From: [FEEDBACK] <'.$email_from.'>'."\r\n".'Reply-To:'.$email_from."\r\n".'X-Mailer: PHP/' . phpversion();
$sent = mail('myemail@gmail.com',$subject,$body,$header);
  

此代码在localhost中不起作用,除非您配置xampp或wampp或mampp