无法实例化邮件函数PhPmailer


Could not instantiate mail function PhPmailer

我的Phpmailer有问题。出于某种原因,它说无法实例化邮件功能。可能是因为From和Fromname?我在PhpMailer几乎没有经验,所以如果有人能帮助我就太好了!

<?php ob_start();
$naam= htmlspecialchars ($_REQUEST["nome"]);
$telefoon= htmlspecialchars ($_REQUEST["telefone"]);
$email= htmlspecialchars ($_REQUEST["email"]);
$woonplaats= htmlspecialchars ($_REQUEST["cidade"]);
$lengte= htmlspecialchars ($_REQUEST["altura"]);
$gewicht= htmlspecialchars ($_REQUEST["peso"]);
$streefgewicht= htmlspecialchars ($_REQUEST["ideal"]);
$leeftijd= htmlspecialchars ($_REQUEST["idade"]);
$hoe= htmlspecialchars ($_REQUEST["amigo"]);
$kanaal= htmlspecialchars ($_REQUEST["canal"]);
$commentaar= htmlspecialchars ($_REQUEST["comentario"]);
$waarover= htmlspecialchars ($_REQUEST["escolha"]);
//echo"$naam $telefoon $email $lengte $gewicht $streefgewicht $leeftijd $hoe $kanaal $commentaar        $waarover";
require("class.phpmailer.php");
$naamgeadresseerde = "Karin Klaver";
$emailadres = "info@proefpakket4you.nl";
//verstuur nieuwsbrief
$mail = new PHPMailer();
// Geef aan dat het een HTML mail betreft
$mail->IsHTML(true);
$mail->From = $emailadres;
$mail->FromName = $naamgeadresseerde;
$mail->AddAddress("$emailadres","$naamgeadresseerde");
$mail->AddCC("info@shapecare.nl", "K. Klaver");
$mail->AddBCC("mikfetter@gmail.com", "Mik Fetter");
$mail->Subject = "Reactie proefpakket4you.nl"; // Subject aanpassen
// Alternatieve body
$mail->AltBody = "Reactie proefpakket4you.nl";
$mail->Body = "
Naam: $naam <br>
Telefoonnummer: $telefoon <br>
E-mail: $email <br>
Lengte: $lengte <br>
Gewicht: $gewicht <br>
Streefgewicht: $streefgewicht <br>
Leeftijd: $leeftijd <br>
Hoe op deze site terechtgekomen (kennis): $hoe <br>
Hoe op deze site terechtgekomen: $kanaal <br>
Aanvullende opmerkingen: $commentaar <br>
Meer info/ Proberen / Starten: $waarover<br>
";
//$mail->WordWrap = 50;
if(!$mail->Send())
{
echo 'Er ging iets mis tijdens het versturen';
echo $mail->ErrorInfo;
}else
        {
//vervolgstap zetten
echo"Goed gedaan";
header ("Location: http://www.proefpakket4you.nl/bedankt.php?naam=$naam");
        }
?>

这可能是因为您的服务器没有安装或配置邮件服务器,或者sendmail_path的php.ini设置错误。

在命令行上,你能发送这样的消息吗:

echo 'test' | mail -s 'test' me@example.com

如果这不起作用,php的邮件功能也不会起作用。

如果您的sendmail路径错误,您可以修复ini文件,或者切换到IsSendmail()并在脚本中提供路径。

添加选项:

$phpmailer->IsSMTP();

使它对我来说更可靠。

如果你只使用,它也会更干净

$mail->MsgHTML($body);

$body作为html字符串,而不是:

$mail->IsHTML(true);
$mail->Body = "
Naam: $naam <br>
Telefoonnummer: $telefoon <br>
E-mail: $email <br>
Lengte: $lengte <br>
Gewicht: $gewicht <br>
Streefgewicht: $streefgewicht <br>
Leeftijd: $leeftijd <br>
Hoe op deze site terechtgekomen (kennis): $hoe <br>
Hoe op deze site terechtgekomen: $kanaal <br>
Aanvullende opmerkingen: $commentaar <br>
Meer info/ Proberen / Starten: $waarover<br>";

也可以使用(不需要"引号")设置From:

$mail->setFrom($emailadres, $naamgeadresseerde);

您是使用本地邮件服务器还是特定服务器发送?如果你需要这样的东西:

$mail->Host  = '127.0.0.1';
$mail->Port = 25;

对于本地主机,或者如果通过另一台服务器发送,您可能需要提供登录详细信息才能使用该电子邮件地址发送,例如:

$mail->SMTPSecure = "tls";
$mail->Host  = 'smtp.microsoft365.com';
$mail->Port = 587;
$mail->Username = 'username';
$mail->Password = 'password';

也可能是@Synchro说的,你还没有在电脑上设置邮件服务器。。。。