事实上,我发现了一个问题:萨拉贡和拉拉维尔- sendmail不起作用 .但我决定发布一个详细的新问题,以得到一个答复,这个问题可能是一个拉拉虫.谢谢。
描述:
我试着让sendmail (萨拉贡)开始工作,但没有运气。文件'.env‘被调整为使用sendmail而不是smtp在一个新的拉拉项目。
复制步骤:
laravel new testMAIL_MAILER=sendmail
MAIL_SENDMAIL_PATH='C:\LARAGON\bin\sendmail\sendmail.exe -bs' php artisan tinkerMail::raw('Hello World!', function($msg) {$msg->to('mail@example.com')->subject('Test Email'); });运行了tinker命令之后,cmd就挂起了.
还在sendmail标志上尝试了不同的选项:
我可以看到sendmail.exe正在运行(在任务管理器中),但似乎无法完成(等待了几分钟)。取消(CTRL-c)将关闭修补程序会话并终止sendmail.exe列表。
与其他php内置邮件功能,拉拉贡工作良好,也成功地捕获邮件文件夹中发送的邮件。
每次更改.env文件后,我总是试图清除配置缓存。php artisan config:clear
通过php发送邮件就像预期的那样,可以使用以下代码:
<html>
<head>
<title>Sending HTML email using PHP</title>
</head>
<body>
<?php
$to = "xyz@somedomain.com";
$subject = "This is subject";
$message = "<b>This is HTML message.</b>";
$message .= "<h1>This is headline.</h1>";
$header = "From:abc@somedomain.com \r\n";
$header .= "Cc:afgh@somedomain.com \r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-type: text/html\r\n";
$retval = mail ($to,$subject,$message,$header);
if( $retval == true ) {
echo "Message sent successfully...";
}else {
echo "Message could not be sent...";
}
?>
</body>
</html>任何帮助都很感激。
发布于 2022-02-21 20:53:15
通常,当sendmail出现身份验证问题时,就会发生这种情况。
确保按照拉拉贡文件的建议使用gmail凭据安装了sendmail

此外,gmail默认禁用“安全性较低的应用程序”。确保您的帐户在这里也启用了不太安全的应用程序(或者更好的是,使用特定于应用程序的密码):https://myaccount.google.com/lesssecureapps
发布于 2022-02-22 01:36:16
输出phpinfo()并检查在sendmail_path上是否有确切的位置定义
您还需要在config/mail.php中定义它,就像
'sendmail' => [
'transport' => 'sendmail',
'path' => '/usr/sbin/sendmail -bs',
],或从.env文件MAIL_SENDMAIL_PATH中提取值。
'path' => env('MAIL_SENDMAIL_PATH')此外,您可以尝试在您的smtp文件中使用带有localhost信息的.env驱动程序,您也可以在phpinfo()中看到这些细节。
MAIL_DRIVER=smtp
MAIL_HOST=localhost
MAIL_PORT=25
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=null尝试创建发送电子邮件或转储错误的路由。
Route::get('/test-mail', function () {
try {
$send = \Illuminate\Support\Facades\Mail::mailer('sendmail')->send([], [], function ($message) {
$message
->to('to@email.com')
->from('from@email.com', 'Test')
->subject( 'My Subject' )
->setBody('Test Content', 'text/html');
});
dd($send);
} catch (\Exception $e ) {
throw new \Exception( $e->getMessage() );
}
});https://stackoverflow.com/questions/71212826
复制相似问题