Laravel SMTP 设置无效,但相同的设置在 Perl 中有效

Laravel SMTP settings are not working but the same settings are working in Perl

我在 Laravel 中遇到 SMTP 设置问题。

这是我的 .env 文件中的邮件部分:

MAIL_DRIVER=smtp
MAIL_HOST=xxxxx.com
MAIL_PORT=25
MAIL_USERNAME=yyyyy.com
MAIL_PASSWORD=
MAIL_ENCRYPTION=tls

我遇到下一个错误:

Swift_TransportException
Connection could not be established with host xxxxx.com :stream_socket_client(): unable to connect to tcp://xxxxx.com:25 (Permission denied)

587和465端口我也试过了,结果一样。

但是具有相同身份验证数据的简单 Perl 脚本工作正常:

$To = 'example@xxx.com';
$Server = 'xxxxx.com';
$From = '"Do Not Reply" <donotreply@xxx.com>';
$ReplyTo = '"Do Not Reply" <donotreply@xxx.com>';
$Invitation = "test.txt";
$smtp = Net::SMTP->new($Server, Hello => 'yyyyy.com', Timeout => 30, Debug => 1,);
$smtp->mail($From);
$smtp->to($To);
$smtp->data();
$smtp->datasend("To: $To\n");
$smtp->datasend("From: $From\n");
$smtp->datasend("Reply-To: $ReplyTo\n");
open(INVITE, "<$Invitation") || die "Cannot open invitation: $!\n";
while(<INVITE>) {
  $smtp->datasend($_);
}
$smtp->dataend();
close INVITE;
$smtp->quit;

我唯一的疑问是 Perl 脚本中的 Hello 选项和 .env 文件中的 MAIL_USERNAME 不是同一个选项。

也许我应该在我的 .env 文件中使用其他选项?

提前致谢!

尝试将 MAIL_PORT 更改为 587

问题不在 Laravel 设置或 Pearl Hello 选项中。它在某些服务器设置中。

我不得不运行

setsebool -P httpd_can_sendmail on

在服务器上,一切开始工作。

我仍然不知道为什么 Perl 脚本在没有该设置的情况下也能正常工作,但它并不那么重要。