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

Laravel家园Swift无法发送没有发件人地址的邮件

周苑博
2023-03-14

当我尝试发送密码重置邮件时,我在Laravel 5.1 Homestead中的股票电子邮件设置中遇到此错误。

Swift_TransportException in AbstractSmtpTransport.php line 162:Cannot send message without a sender address

地址填写在app/config/mail.php中:

'from' => array('address' => 'myusername@gmail.com', 'name' => 'hawle'),

共有3个答案

竺承望
2023-03-14

也许有人正在使用laravel 6
它的问题是不能发送没有发送者地址的邮件,所以在. env文件中没有发送电子邮件的电子邮件地址

只需添加发件人电子邮件地址

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=your_username
MAIL_PASSWORD=your_password
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=example@gmail.com **here**
MAIL_FROM_NAME="${APP_NAME}"

我没有改变mail.php文件中的任何内容,它在laravel 6中对我有用,在那次运行之后

php artisan config:cache
尹小云
2023-03-14

确保已在app/config/mail.php中设置“from”

'from' => ['address' => 'myname@gmail.com', 'name' => 'myname']

它将解决这个问题。

白晋鹏
2023-03-14

在您的. env文件中,您需要设置电子邮件帐户的电子邮件地址和密码。您还需要设置您正在使用的邮件服务器的主机和端口。

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=25
MAIL_USERNAME= ***USER NAME***
MAIL_PASSWORD= ***PASSWORD***
MAIL_ENCRYPTION=tls

或者确保mail.php文件中的所有内容都是完整的(请参见下面的注释)。

'host' => env('MAIL_HOST', 'smtp.gmail.com'),
/*
|--------------------------------------------------------------------------
| SMTP Host Port
|--------------------------------------------------------------------------
|
| This is the SMTP port used by your application to deliver e-mails to
| users of the application. Like the host we have set this value to
| stay compatible with the Mailgun e-mail application by default.
|
*/
'port' => env('MAIL_PORT', 25),
/*
|--------------------------------------------------------------------------
| Global "From" Address
|--------------------------------------------------------------------------
|
| You may wish for all e-mails sent by your application to be sent from
| the same address. Here, you may specify a name and address that is
| used globally for all e-mails that are sent by your application.
|
*/
'from' => ['address' => 'myusername@gmail.com', 'name' => 'hawle'],
/*
|--------------------------------------------------------------------------
| E-Mail Encryption Protocol
|--------------------------------------------------------------------------
|
| Here you may specify the encryption protocol that should be used when
| the application send e-mail messages. A sensible default using the
| transport layer security protocol should provide great security.
|
*/
'encryption' => env('MAIL_ENCRYPTION', 'tls'),

注意:最好使用.env文件,因为您的生产环境中很可能会有不同的配置。

如果一切都已完成,但仍无法工作,则可能是缓存。您可以使用以下命令清除配置缓存:

php artisan config:cache

另请注意:

  • 端口465是Gmail。如果不行,可以用25.
  • mail.php文件位于/app/config/mail.php(如OP所说)。
  • . env文件位于项目的根目录。
  • Mailtrap.io是用于测试SMTP的服务。它并不真正发送电子邮件。

正如Viktorminator所提到的:考虑创建应用程序密码,而不是使用您的常用通行证。创建密码的链接myaccount.google.com/apppasswords

 类似资料:
  • 我将我的网站配置为通过gmail的SMTP发送邮件。我的网站是在laravel-4框架下运行的。下面是config中的代码 这是一个关于我如何发送邮件的代码示例, 当我发送邮件时,邮件正在发送。但它是从-'xxx@somedomain.com'发送的。我希望它通过电子邮件发送$从变量。并且from地址会在不同的地方改变。我不确定如何配置这个。任何帮助都将不胜感激。

  • 问题内容: 我什至不确定这是否可行,但是我想做的如下。我有一个使用脚本生成并通过电子邮件发送的HTML表单。我想要的是将电子邮件从此表单接收到,然后我希望该地址显示为表单中的字段之一。 我环顾四周,并在此站点上找到了一些有用的信息。我不确定是否可以在这种情况下使用,或者是否可以满足我的要求。 如果可能的话,这可能吗? 问题答案: 在同一站点(示例2)上查看此页面:http : //www.w3sc

  • 使用office 365发送邮件时,我们如何设置不同的地址。基本上,我提供的凭据是office365帐户/用户名,从电子邮件地址我提到的是不同的帐户。所以这必须是一样的? 下面是我的代码。 但它给我以下错误, 邮箱不可用。服务器响应为:5.7.60 SMTP;客户端没有作为此发件人发送的权限 基本上,我想在发送邮件时设置不同的发件人地址。 编辑1:发件人电子邮件地址将是登录用户的电子邮件id。这将

  • 问题内容: 使用Laravel的回调时,我似乎无法成功发送到 多个 地址,但是,当我仅指定 一个 收件人时,该代码仍然有效。 我试过链接: 并传递一个数组: 但似乎都不起作用,并且在返回Mail :: failures()时收到失败消息,Mail :: failures()的var_dump()显示了我尝试发送到的电子邮件地址,例如: 显然做错了,由于我也不了解API,将不胜感激:http : /

  • 需要帮助:如何使用内嵌图像发送电子邮件? 响应返回200 OK,但未发送电子邮件。但是当我删除$信息时- 我用{{$讯息-

  • 我已经在Gmail中的Check mail from other accounts(使用POP3)和Send mail as(使用TLS在587端口通过mail.mydomain.com安全连接发送邮件)下设置了我的cpanel电子邮件地址 看着Roundcube,我可以看到里面有收到的邮件,但没有发送的邮件——尽管Gmail是通过我的域服务器发送的。 有没有办法查看通过Gmail收发的邮件?