Php 在Laravel 5中发送电子邮件的最佳方式是什么?

Php 在Laravel 5中发送电子邮件的最佳方式是什么?,php,email,laravel,laravel-4,laravel-5,Php,Email,Laravel,Laravel 4,Laravel 5,我在Laravel 5应用程序中发送电子邮件时遇到问题 这是我的邮件功能 电子邮件=test@gmail.com Mail::send('emails.activation', array( 'username'=>$user->username, 'name'=>$user->name, 'code'=>$user->code, 'email'=>$user->email ), function($message){

我在Laravel 5应用程序中发送电子邮件时遇到问题


这是我的邮件功能

电子邮件=
test@gmail.com

Mail::send('emails.activation', array(

  'username'=>$user->username,
  'name'=>$user->name,
  'code'=>$user->code,
  'email'=>$user->email

  ),
function($message){
  $message->from(env('MAIL_USERNAME'),'Site');
  $message->to('email', 'name' )->subject('Site Activation ');
});

我一直在


更新
.env
文件中的邮件配置

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=donotreply@site.com
MAIL_PASSWORD=***********

新错误


我对正在发生的事很好奇。
我做错了什么?

这意味着电子邮件地址字段(如发件人、发件人或回复地址字段)中有错误

Swift Mailer严格遵守RFC标准,以避免垃圾邮件检查工具捕获电子邮件

test@gmail.com
看起来不像普通的电子邮件地址,或者根本不存在

尝试使用其他电子邮件地址示例发送给我

Mail::send('emails.activation', array(

  'username'=>$user->username,
  'name'=>$user->name,
  'code'=>$user->code,
  'email'=>$user->email

  ),
function($message){
  $message->from('siteEmailaddress@domain.com'),'Site');
  $message->to('avalidEmailaddress@domain.com', 'name' )->subject('Site Activation ');

});
此外,如果您希望使用gmail作为以下SMTP服务器:

'driver' => 'smtp',
'host' => 'smtp.gmail.com',
'port' => 465,
'encryption' => 'ssl',
'username' => 'your-email@gmail.com',
'password' => 'your-password',
编辑

注意:
MAIL\u用户名
必须是您的
@gmail.com
电子邮件地址,例如。myname@gmail.com否则您将获得无法与主机smtp.gmail.com建立连接的错误

若要在无法解决此异常时处理此异常,请转到打开app\Exceptions\handler.php

添加此内部渲染方法:

    /**
     * Render an exception into an HTTP response.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Exception  $e
     * @return \Illuminate\Http\Response
     */
    public function render($request, Exception $e)
    {


        if ($e instanceof Swift_RfcComplianceException){
            //redirect to form
            //You can also delete the user account here if already created or do other stuffs
            return redirect($request->fullUrl())->with('error',"We have issue sending you an email");

        }


        .......
        
    }

注意:记住添加
使用Swift\u RfcComplianceException
在handler.php的顶部

看起来“发件人”地址无效,您当前正在使用
env
调用,而不知道它100%返回什么


出于测试目的,尝试将
地址从
更改为真实的电子邮件地址

RFC 2822,3.6.2说明了什么?不符合要求?那是什么意思?我的电子邮件有效。电子邮件地址字段(如发件人、发件人或回复地址)中有错误。Swift Mailer严格遵守RFC标准,以避免垃圾邮件检查工具捕获电子邮件。请不要误会我,但我的
test@gmail.com
?更改为真实电子邮件后-我收到此错误
无法与主机smtp.gmail.com建立连接[操作超时#60]
确定,进一步;-)。但您的SMTP服务器设置似乎不正确。如果你想使用gmail SMTP服务器,你需要提供用户名和密码。尝试使用SMTP服务器,例如您的服务提供商(通常不需要身份验证)。我使用了。我提供/配置了我的
.env
文件中的所有内容。您对我如何修复超时错误消息有什么建议吗?您的SMTP配置正是我的配置。感谢您的帮助,但我仍然收到超时错误消息。我很好奇???当我设置
MAIL\u USERNAME=my-email@gmail.com
使用
gmail
作为它的一部分。它起作用了。我只是想告诉你最新情况。也许你可以把它作为你答案的一部分,并加粗。