【问题标题】:Could not instantiate mail function PhPmailer无法实例化邮件功能 PhPmailer
【发布时间】:2014-10-07 10:33:15
【问题描述】:

我的 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");
        }

?>

【问题讨论】:

  • 你能告诉我们完整的错误信息吗?

标签: php email phpmailer


【解决方案1】:

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

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

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

如果这样不行,php的邮件功能也不行。

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

【讨论】:

    【解决方案2】:

    添加选项:

    $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 using(不需要“引号”):

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

    【讨论】:

      猜你喜欢
      • 2015-01-17
      • 2015-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-24
      • 1970-01-01
      • 1970-01-01
      • 2011-08-08
      相关资源
      最近更新 更多