phpMailer创建类的多个实例时的空白页面

时间:2010-09-16 10:41:04

标签: php phpmailer

我正在创建一个函数,使用phpMailer lib向用户发送通知电子邮件。

 public function notify($address,$subject = '',$body = null,$mailer_options = array()) {
        try {
            $phpmailer = new PHPMailer($exceptions = true);
            $phpmailer->CharSet = 'UTF-8';
            $phpmailer->IsSMTP();
            $phpmailer->SMTPAuth = true;
            $phpmailer->SMTPKeepAlive = true;
            //$phpmailer->SMTPDebug = true;
            $phpmailer->IsHTML(true);

            $phpmailer->Host = ...
            $phpmailer->Username = ...
            $phpmailer->Password = ...
            $phpmailer->From = ...
            $phpmailer->FromName =...


            $phpmailer->AddAddress($address);
            $phpmailer->Subject = $subject;
            $phpmailer->Body = $body;

            $phpmailer->Send();
            $phpmailer->ClearAllRecipients();
}

如果我只是在课堂上发送电子邮件或发送多封电子邮件,它的工作正常。 但是如果做的话

for($i=0;$i<3;$++)
{
   $notification = new $Notification();
   $notification->notify(...);
}

它返回一个空白页面。没有错误,消息,没有。 在你问我之前我打开了display_errors。

它有什么用?

如果我只有一个像这样的phpmailer实例,它可以正常工作:

$phpmailer = new PHPMailer($exceptions = true);
(...)

       for($i=0;$i<3;$i++)
       {
            $phpmailer->AddAddress('address');
            $phpmailer->Subject = "";
            $phpmailer->Body = "sasa";

            $phpmailer->Send();
            $phpmailer->ClearAllRecipients();
       }

1 个答案:

答案 0 :(得分:1)

$

中删除new Notification
for($i=0;$i<3;$++)
{
   $notification = new Notification();
   $notification->notify(...);
}

new $Notification将根据变量$Notification的值创建一个新实例。 只有$Notification真的包含“通知”(假设您的类名为“通知”)时,这才有效

如果您在PHP脚本中启用display_errors,但服务器默认禁用了它,则如果脚本中存在语法错误,则不会显示错误。