在正确的语法中使用phpmailer

时间:2017-08-28 05:57:40

标签: phpmailer

当我使用带有此代码的phpmailer:$mail = new phpmailer();我应该给它一个真正的参数,还是它不重要?

我的意思是:$mail = new phpmailer(true);

将电子邮件发送到try块中以及在catch块中发送错误是否很重要?

谢谢!

更新,我的代码,我使用的内容:

$mail = new PHPMailer(true);
    try
    {
        $mail->From = $site_config['k_contact_email'];
        $mail->FromName = $site_config['k_webshop_nev'];
        $to = $user_email;
        $mail->CharSet = "UTF-8";
        $mail->AddAddress($user_email);
        $mail->Subject = "Regisztráció aktiválása";
        $mail->AltBody = "Hogy az üzenetet megtekintse, kérjük, kapcsoljon át HTML nézetre.";
        $mail->WordWrap = 80;
        $mail->loadtemplate("upd_email/regisztracio.html");
        $mail->assign('title','Regisztráció aktiválása');

        // Személyes adatok
        $mail->assign('user_nev', $user_vnev .' '. $user_knev );
        $mail->assign('aktivation_link', "".$host."?activation=".$user_aktivation."");
        $mail->assign('domain_name', $host);
        $mail->assign('domain_address', $host);
        $mail->assign('akt_email_text', $site_config['k_email_akt_text']);
        $mail->MsgHTML($mail->message);
        $mail->IsHTML(true);
        $mail->Send();
        header("Location:".$host."/uzenet/uj-regisztracio");
    }
    catch (phpmailerException $e) {echo $e->errorMessage(); } 
    catch (Exception $e) {echo $e->getMessage(); }

1 个答案:

答案 0 :(得分:1)

好好看documentation从不伤害任何人。在该页面的主要示例中,他们使用phpmailer,没有异常(在构造函数中没有true)。

但是,如果您查看API documentation中的构造函数定义,那么您可以看到传递true将确保该类将(重新)抛出内部错误。如果未在构造函数中设置true,则它将捕获所有内部错误并返回错误代码。

因此,如果在构造函数中传递true,则需要捕获异常并处理它们。如果你没有通过,那么if(!$mail->send()){}可能就足够了。