PHPMailer半问题
PHPMailer semi issue
我对 PHPMailer 有一个奇怪的问题,当我尝试发送电子邮件时,我看到了这个错误:escapeshellcmd() has been disabled for security reasons
但是如果我检查电子邮件,我可以看到电子邮件已发送,我怎么能 fix/hide这个问题?
您的 PHP 安装已禁用该功能,但这可能是警告而不是错误,因此它会继续 运行 您的代码并发送邮件。您可以控制 php.ini 文件中 PHP 错误和警告的显示,查看 error_display
属性.
更好的解决方案是使用SMTP 到localhost,不需要使用此功能。它也比使用 PHP 的 mail()
函数更快更安全,后者是 PHPMailer 默认使用的函数。要更改,只需将其添加到您现有的 PHPMailer 代码:
$mail->isSMTP();
$mail->Host = 'localhost';
使用此代码即可,希望对您有所帮助:
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'PHPMailer/src/Exception.php';
require 'PHPMailer/src/PHPMailer.php';
require 'PHPMailer/src/SMTP.php';
$mail = new PHPMailer(true);
$name = 'Your Name';
$to = 'to@gmail.com';
$subject = 'Hello World!';
$message = 'This is a test mail!';
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->Username = 'yourmail@gmail.com';
$mail->Password = '*********';
$mail->SMTPSecure = 'tls';
$mail->addReplyTo($to, $name);
$mail->setFrom($to, $name);
$mail->addAddress($to);
$mail->Subject = $subject;
$mail->msgHtml($message);
$mail->send();
只需更改电子邮件和密码并运行。
Hope you included PHPMailer library in root, if no then also check the path.
谢谢!
我对 PHPMailer 有一个奇怪的问题,当我尝试发送电子邮件时,我看到了这个错误:escapeshellcmd() has been disabled for security reasons
但是如果我检查电子邮件,我可以看到电子邮件已发送,我怎么能 fix/hide这个问题?
您的 PHP 安装已禁用该功能,但这可能是警告而不是错误,因此它会继续 运行 您的代码并发送邮件。您可以控制 php.ini 文件中 PHP 错误和警告的显示,查看 error_display
属性.
更好的解决方案是使用SMTP 到localhost,不需要使用此功能。它也比使用 PHP 的 mail()
函数更快更安全,后者是 PHPMailer 默认使用的函数。要更改,只需将其添加到您现有的 PHPMailer 代码:
$mail->isSMTP();
$mail->Host = 'localhost';
使用此代码即可,希望对您有所帮助:
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'PHPMailer/src/Exception.php';
require 'PHPMailer/src/PHPMailer.php';
require 'PHPMailer/src/SMTP.php';
$mail = new PHPMailer(true);
$name = 'Your Name';
$to = 'to@gmail.com';
$subject = 'Hello World!';
$message = 'This is a test mail!';
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->Username = 'yourmail@gmail.com';
$mail->Password = '*********';
$mail->SMTPSecure = 'tls';
$mail->addReplyTo($to, $name);
$mail->setFrom($to, $name);
$mail->addAddress($to);
$mail->Subject = $subject;
$mail->msgHtml($message);
$mail->send();
只需更改电子邮件和密码并运行。
Hope you included PHPMailer library in root, if no then also check the path.
谢谢!