我在PHPmailer中有以下代码:
$tomailn[0] = 'imap2@gazler.com';
$tomailn[1] = 'imap@gazler.com';
foreach($tomailn as $value)
{
$mail->AddAddress($value, '');
}
但我收到错误'无法实例化邮件功能'。
如果我从数组中删除一个项目,它可以正常工作,但在尝试添加2个或更多地址时会出错。任何想法为什么会这样?有没有不同的方法来添加多个电子邮件地址?
干杯, Gazler。
答案 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->Sender
和ini_get('safe_mode')
说什么? (我的猜测:如果你没有以安全模式运行,但将其设置为Off
,则此代码将返回true
。)
答案 1 :(得分:0)
你刚试过$mail->AddAddress($value);
吗?
答案 2 :(得分:0)
大多数情况下,如果未设置from
标头或无效,则会导致此错误。尝试设置此变量:
$mail->From = 'valid@mailaddress.com';
如果仍然无效,请尝试以下方法之一:
mail
(以及php.ini
设置); phpinfo()
并搜索OpenSSL)答案 3 :(得分:0)
我刚查看了PHPMailer的源代码,消息“无法实例化邮件功能”表示mail()
返回false。
您可以尝试使用相同的功能,但是您知道通常接受电子邮件的两个不同的电子邮件地址吗?
答案 4 :(得分:0)
如果您没有使用PHPMailer,请尝试下载最新版本的PHPMailer,它有错误修复。很可能是你的邮件程序被搞乱了。
答案 5 :(得分:0)
'无法实例化邮件功能'。 只需检查您的邮件程序功能是否正常。很多时候这个错误是由于托管服务提供商的限制造成的。很多时间托管提供商阻止你的邮件功能然后通常你会收到这个错误