PHPmailer多个收件人错误

时间:2010-02-17 00:25:07

标签: php phpmailer

我在PHPmailer中有以下代码:

$tomailn[0] = 'imap2@gazler.com';
$tomailn[1] = 'imap@gazler.com';
foreach($tomailn as $value)
{
$mail->AddAddress($value, '');
}

但我收到错误'无法实例化邮件功能'。

如果我从数组中删除一个项目,它可以正常工作,但在尝试添加2个或更多地址时会出错。任何想法为什么会这样?有没有不同的方法来添加多个电子邮件地址?

干杯, Gazler。

6 个答案:

答案 0 :(得分:4)

深入了解源代码。编辑PHPMailer.php并找到“function MailSend”。 (在5.0.2中,它在第564行附近。)

在上述功能中,从mail()的每次通话中删除@ error suppressor。确保error_reporting设置为合理的调试。开发时,请选择以下内容:

error_reporting(E_ALL | E_STRICT);
ini_set('log_errors', 'On');
ini_set('display_errors', 'On');

查看PHP是否显示任何错误。 PHPMailer仅在最后一次调用mail()时返回falsey,或者$rt永远不会被设置时抛出实例化异常,这意味着if ($this->Sender != '' && strlen(ini_get('safe_mode'))< 1)计算为true

您使用的是安全模式吗? PHP Mailer $mailer->Senderini_get('safe_mode')说什么? (我的猜测:如果你没有以安全模式运行,但将其设置为Off,则此代码将返回true。)

答案 1 :(得分:0)

你刚试过$mail->AddAddress($value);吗?

答案 2 :(得分:0)

大多数情况下,如果未设置from标头或无效,则会导致此错误。尝试设置此变量:

$mail->From = 'valid@mailaddress.com';

如果仍然无效,请尝试以下方法之一:

  • 检查服务器中是否启用了mail(以及php.ini设置);
  • 启用 openssl 模块(执行phpinfo()并搜索OpenSSL)

答案 3 :(得分:0)

我刚查看了PHPMailer的源代码,消息“无法实例化邮件功能”表示mail()返回false。

您可以尝试使用相同的功能,但是您知道通常接受电子邮件的两个不同的电子邮件地址吗?

答案 4 :(得分:0)

如果您没有使用PHPMailer,请尝试下载最新版本的PHPMailer,它有错误修复。很可能是你的邮件程序被搞乱了。

答案 5 :(得分:0)

'无法实例化邮件功能'。 只需检查您的邮件程序功能是否正常。很多时候这个错误是由于托管服务提供商的限制造成的。很多时间托管提供商阻止你的邮件功能然后通常你会收到这个错误