当前位置: 首页 > 知识库问答 >
问题:

预期响应代码为220,但在Laravel中获得了代码“”,消息为“”

农英杰
2023-03-14

我正在使用Laravel邮件功能发送电子邮件。下面是我的app/config/mail。php文件设置。

'driver' => 'sendmail',
'host' => 'smtp.gmail.com',
'port' => 587,
'from' => array('address' => 'email@gmail.com', 'name' => 'MyName'),
'encryption' => 'tls',
'username' => 'myUsername',
'password' => "password",
'sendmail' => '/usr/sbin/sendmail -bs',
'pretend' => false,

控制器邮件方法

//Send Mail     
Mail::send('sendMail', array('key' => 'value'), function($message)
{
    $message->to('EmailId@hotmail.com', 'Sender Name')->subject('Welcome!');
});

当我运行代码时,它会给我以下错误消息:

Swift_运输例外

预期响应代码220,但得到代码",带有消息"

我在视图中创建了一个包含一些数据的SendMail.php文件。

如何解决此错误消息?

共有3个答案

夏博
2023-03-14

什么帮助了我...将sendmail参数从-bs更改为-t。

'sendmail' => '/your/sendmail/path -t',
谭兴学
2023-03-14

在我的情况下,我必须设置

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465           <<<<<<<------------------------- (FOCUS THIS)
MAIL_USERNAME=<<your email address>>
MAIL_PASSWORD=<<app password>>

MAIL_ENCRYPTION= ssl    <<<<<<<------------------------- (FOCUS THIS)

工作它...可能有用。其余的代码和希德说的一样。

我认为编辑环境文件和app/config/mail都是必要的。php是不必要的。只需使用一种方法。

根据@Zan的评论进行编辑

如果需要启用tls保护,请使用以下设置。

MAIL_PORT=587
MAIL_ENCRYPTION= tls  

请参阅此处了解其他一些gmail设置

鱼浩荡
2023-03-14

这个问题通常会发生在您没有启用两步骤验证的gmail帐户(可以在这里完成),您正在使用发送电子邮件。因此,首先,启用两步骤验证,您可以找到大量资源来启用两步骤验证。启用后,您必须创建一个应用密码。并在. env文件中使用应用密码。当您完成它时,您的. env文件将类似于。

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=<<your email address>>
MAIL_PASSWORD=<<app password>>
MAIL_ENCRYPTION=tls

还有你的邮件。php

<?php

return [
    'driver' => env('MAIL_DRIVER', 'smtp'),
    'host' => env('MAIL_HOST', 'smtp.gmail.com'),
    'port' => env('MAIL_PORT', 587),
    'from' => ['address' => '<<your email>>', 'name' => '<<any name>>'],
    'encryption' => env('MAIL_ENCRYPTION', 'tls'),
    'username' => env('MAIL_USERNAME'),
    'password' => env('MAIL_PASSWORD'),
    'sendmail' => '/usr/sbin/sendmail -bs',
    'pretend' => false,

];

这样做之后,运行php artisan config: achephp artisan config:清除,然后检查,电子邮件应该工作。

 类似资料:
  • 问题内容: 我正在使用Laravel Mail函数发送电子邮件。以下是我的文件设置。 控制器邮件方法 当我运行代码时,它给我以下错误消息: Swift_TransportException 预期的响应代码为220,但得到的代码为“”,并带有消息“” 我已经在视图中创建了一个包含一些数据的文件。 如何解决此错误消息? 问题答案: 如果您未启用要用于发送的帐户的两步验证(可以在此处完成),则通常会出现

  • 我最近在尝试通过gmail发送邮件时遇到了一个SwiftMail错误。 我试图通过我的gmail发送邮件,谷歌认为我是一个垃圾邮件(可能是因为我的请求太快了),我收到了他们的邮件,说我的帐户可以访问,我告诉他们是我。我能够毫无问题地发送邮件,而这只是刚刚发生的事。 这是我的env文件的内容。

  • 问题内容: 我最近在尝试通过gmail发送邮件时遇到了SwiftMail错误。 我试图通过gmail发送邮件,而google认为我是垃圾邮件(可能是因为我请求的速度太快了)。我收到了他们的来信,说我的帐户可以访问,我告诉他们是我。我能够毫无问题地发送邮件,而这只是现在发生的事情。 这是我的env文件的内容。 问题答案: 我在互联网上进行了研究,得出的一些答案包括启用“ 访问较小的应用程序 ”和“

  • 记录的Blazemeter脚本在JMeter中不工作,出现以下错误消息。 响应代码:非HTTP响应代码:java.net。SocketException响应消息:非HTTP响应消息:软件导致连接中止:recv失败

  • 我正在使用 Jmeter 执行一个脚本进行负载测试。我在两者之间遇到错误,例如。如果我应用了500users的负载,直到250个用户线程成功运行,那么错误来自连接超时错误。然后,它再次运行成功为某些线程,然后出错。 代码如下:- 响应标头: 我需要破坏服务器。 有人能帮我吗?

  • 我需要保存通过json发送的响应代码,例如404: 我尝试使用以下代码: 但是laravel告诉我这个错误: 非静态方法Symfony\Component\HttpFoundation\Response::getStatusCode()不应静态调用