我在使用 laravel 发送电子邮件时遇到错误

I get error on sending email with laravel

提问人:fatemeh mansoori 提问时间:9/22/2023 最后编辑:Bassfatemeh mansoori 更新时间:9/23/2023 访问量:123

问:

我有一个 laravel 应用程序。我发送了一封电子邮件,其中包含以下配置,

MAIL_MAILER=sendmail 
MAIL_HOST=smtp.googlemail.com
MAIL_PORT=587
MAIL_USERNAME=fatemehman[email protected]
MAIL_PASSWORD=*********
MAIL_ENCRYPTION=tls

它可以在本地工作,但是当我在cpanel上上传我的应用程序时,它不起作用,并出现此错误,

Call to undefined function Symfony\Component\Mailer\Transport\Smtp\Stream\proc_open()

为什么? 请帮帮我。 谢谢。

Laravel Symfony 电子邮件 错误处理 发送

评论

0赞 francisco 9/22/2023
你有钥匙吗?跟?config\mail.phpsendmail'transport' => 'smtp',
0赞 fatemeh mansoori 9/22/2023
@francisco通过添加这个 'sendmail' => [ 'transport' => 'smtp', // 'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'), 'path' => '/usr/sbin/sendmail -bs -i', ] 现在得到这个错误 未定义的数组键 “host”
0赞 francisco 9/22/2023
默认情况下,您的主机是'host'=> env('MAIL_HOST'),
0赞 fatemeh mansoori 9/22/2023
@francisco我有这个 'smtp' => [ 'transport' => 'sendmail', 'url' => env('MAIL_URL'), 'host' => env('MAIL_HOST', 'smtp.googlemail.com'), 'port' => env('MAIL_PORT', 465), 'encryption' => env('MAIL_ENCRYPTION', 'tls'), 'username' => env('MAIL_USERNAME'), 'password' => env('MAIL_PASSWORD'), 'timeout' => null, 'local_domain' => env('MAIL_EHLO_DOMAIN','mary1800.info'), ], in mail.php.我该怎么办
0赞 francisco 9/22/2023
如果你的 then, config 应该是: 'sendmail' => [ 'transport' => 'smtp', 'url' => env('MAIL_URL'), 'host' => env('MAIL_HOST', 'smtp.googlemail.com'), 'port' => env('MAIL_PORT', 465), 'encryption' => env('MAIL_ENCRYPTION', 'tls'), 'username' => env('MAIL_USERNAME'), 'password' => env('MAIL_PASSWORD'), 'timeout' => null, 'local_domain' => env('MAIL_EHLO_DOMAIN','mary1800.info'), ]MAIL_MAILER=sendmail

答:

-2赞 Sifat Kazi 9/22/2023 #1

该错误通常是由于服务器上缺少必需的 PHP 扩展引起的。在这种情况下,必要的扩展是“proc_open”函数。

要解决此问题,您需要在cPanel服务器上启用“proc_open”扩展。这是你如何做到的:

  1. 登录您的cPanel帐户并导航到“软件” 部分。
  2. 查找“选择PHP版本”选项并单击它。
  3. 在 PHP 版本管理器中,确保 PHP 的正确版本 为您的 Laravel 应用程序选择。
  4. 单击“扩展”选项卡。
  5. 在可用扩展名列表中搜索“”。proc_open
  6. 选中“proc_open”旁边的框以启用它。
  7. 单击“保存”按钮以应用更改。

启用“proc_open”扩展后,请尝试再次运行 Laravel 应用程序以查看错误是否已解决。如果您仍然遇到任何问题,请确保在您的 cPanel 服务器上安装了 Laravel 的必要依赖项。

评论

0赞 fatemeh mansoori 9/22/2023
我在 PHP Opttions 上没有看到proc_open。我该怎么办?