我的代码是这样的:
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', 'ssl://secure.emailsrvr.com'),
'port' => env('MAIL_PORT', 465),
'from' => ['address' => 'myemail@chel.com', 'name' => 'myname'],
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_USERNAME', 'myemail@chel.com'),
'password' => env('MAIL_PASSWORD', 'mypassword'),
'sendmail' => '/usr/sbin/sendmail -bs',
'pretend' => false,
];
有错误消息:
Swift_TransportException in StreamBuffer.php line 265: Connection could not be established with host ssl://secure.emailsrvr.com [php_network_getaddresses: getaddrinfo failed: The requested name is valid, but no data of the requested type was found. #0].
如何解决这个问题?
谢谢。
答案 0 :(得分:0)
从错误消息中我认为由于某种原因无法解析邮件服务器的域(secure.emailsrvr.com)。 如果您在共享主机上,您应该询问您的托管服务提供商,如果您使用专用服务器或vps,则应该ping主机名并查看是否可以解析。
答案 1 :(得分:0)
我做了以下事情,对我有用。
进行以下更改以在Laravel框架的.env文件中创建全局变量。
MAIL_DRIVER=smtp
MAIL_HOST=yourhost
MAIL_PORT=465
MAIL_ENCRYPTION=ssl
MAIL_USERNAME=youremail@something.com
MAIL_PASSWORD=yourpassword
或者您可以在config / mail.php中添加上述更改。它会工作。
答案 2 :(得分:-3)
laravel 5+中的一些电子邮件参数在.env文件中定义,有时laravel不识别.env文件之外的其他参数, 首先检查您的参数是否已发送,如果没有尝试发送电子邮件到您的个人帐户并尝试更改.env文件中的参数