我的代码是这样的:
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的电子邮件发件人
如何保留动态发件人?
谢谢
答案 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