我正在创建一个函数,使用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();
}
答案 0 :(得分:1)
从$
:
new Notification
for($i=0;$i<3;$++)
{
$notification = new Notification();
$notification->notify(...);
}
new $Notification
将根据变量$Notification
的值创建一个新实例。
只有$Notification
真的包含“通知”(假设您的类名为“通知”)时,这才有效
如果您在PHP脚本中启用display_errors
,但服务器默认禁用了它,则如果脚本中存在语法错误,则不会显示错误。