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

Php 无法在laravel 5中发送电子邮件,php,laravel,laravel-5,sendmail,Php,Laravel,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' =>

我的代码如下:

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,
];
出现错误消息:

StreamBuffer.php第265行中的Swift_TransportException:无法与主机建立连接ssl://secure.emailsrvr.com [php_network_getaddresses:getaddrinfo失败:请求的名称有效,但未找到请求类型的数据。0]

如何解决这个问题


多谢各位

laravel 5+中的一些电子邮件参数在.env文件中定义,有时laravel无法识别.env文件之外的其他参数,
首先检查您的参数是否已发送,如果未发送,请尝试向您的个人帐户发送电子邮件,并尝试从错误消息中更改.env文件中的参数。我相信由于某些原因,邮件服务器的域secure.emailsrvr.com无法解析。
如果您使用的是共享主机,您应该询问您的主机提供商,如果您使用的是专用服务器或vps,您应该ping主机名,看看它是否可以解决。

我做了以下几件事,它对我很有效

在服务器上创建电子邮件帐户。现在我们有了MAIL_用户名和MAIL_密码。 进行以下更改以在Laravel framework的.env文件中创建全局变量

MAIL_DRIVER=smtp
MAIL_HOST=yourhost
MAIL_PORT=465
MAIL_ENCRYPTION=ssl
MAIL_USERNAME=youremail@something.com
MAIL_PASSWORD=yourpassword
或者,您可以在config/mail.php中添加上述更改。会有用的


根据错误消息,配置被读取并使用得很好。这似乎不正确。谁是emailsrvr?私有的gmail/yahoo/etc???@LeviZoesch,这是一个服务器名,我的officeTLS使用587端口,你使用的是用于ssl的465端口。这可能会产生一些问题。@Md.SumsuddinShojib,同样的结果。它不起作用,我建议你首先尝试使用gmail smtp,在laravel配置中保持一切不变&看看它是否起作用。然后你可以缩小问题的范围。问题似乎不在服务器上。因为当我像这样使用codeigniter:。它起作用了。但是,当我使用laravel时,它不起作用。好的,我只是注意到了这个问题。在前面将主机设置为secure.emailsrvr.com no ssl://并将加密设置为ssl。我的设置如下:“host'=>env'MAIL\u host'、'secure.emailsrvr.com'、'encryption'=>env'MAIL\u encryption'、'ssl'。没有错误,但无法按如下方式设置电子邮件:。没有错误,但无法发送电子邮件。配置似乎正常。是否可以查看storage/logs/laravel.log以查看是否存在任何错误?