无法实例化邮件功能PhPmailer

时间:2014-10-07 10:33:16

标签: php email 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");
        }

?>

2 个答案:

答案 0 :(得分:1)

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

在命令行上,您可以发送如下消息:

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

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

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

答案 1 :(得分:0)

添加选项:

$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>";

你也可以设置使用(不应该&#34;引用&#34;)

$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所说的,并且您还没有在您的计算机上设置邮件服务器....