Php 在Laravel 5中发送电子邮件的最佳方式是什么?
我在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){
这是我的邮件功能 电子邮件=
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
作为它的一部分。它起作用了。我只是想告诉你最新情况。也许你可以把它作为你答案的一部分,并加粗。