PHPmailer mehrere Empfänger Fehler
Frage
Ich habe den folgenden Code mit PHPmailer:
$tomailn[0] = 'imap2@gazler.com';
$tomailn[1] = 'imap@gazler.com';
foreach($tomailn as $value)
{
$mail->AddAddress($value, '');
}
Aber ich erhalte die Fehlermeldung 'kann nicht instantiate Mail-Funktion'.
Wenn ich entfernen Sie ein Element aus dem Array es funktioniert gut, aber gibt einen Fehler auf bei dem Versuch, 2 oder mehr Adressen hinzuzufügen. Irgendwelche Ideen, warum dies geschieht? Gibt es eine andere Möglichkeit, mehr E-Mail-Adressen hinzufügen?
Cheers, Gazler.
Lösung
Dig in den Quellcode. Bearbeiten PHPMailer.php und find "function MailSend
". (In 5.0.2, ist es um die Linie 564).
In dieser Funktion entfernen Sie den @ Fehler Suppressor von jedem Aufruf mail()
. Stellen Sie sicher, error_reporting wird auf etwas Vernünftiges für das Debuggen. Bei der Entwicklung, wählen Sie etwas wie folgt aus:
error_reporting(E_ALL | E_STRICT); ini_set('log_errors', 'On'); ini_set('display_errors', 'On');
Sehen Sie, wenn PHP zeigt Fehler an. PHPMailer wirft nur die instantiate Ausnahme, wenn der letzte Aufruf an mail()
kehrt etwas Falsey, oder wenn $rt
nie bekommt Set, das dass if ($this->Sender != '' && strlen(ini_get('safe_mode'))< 1)
auswertet zu true
bedeuten würde.
Verwenden Sie den abgesicherten Modus? Was PHP Mailer $mailer->Sender
und ini_get('safe_mode')
sagen? (Meine Vermutung:., Wenn Sie nicht im abgesicherten Modus ausgeführt wird, aber müssen es so etwas wie Off
gesetzt, dieser Code würde true
zurück)
Andere Tipps
haben Sie versucht, nur $mail->AddAddress($value);
?
Die meisten der Zeit dieser Fehler verursacht, wenn from
Header nicht gesetzt oder ist ungültig. Versuchen Sie, diese Variable:
$mail->From = 'valid@mailaddress.com';
Wenn es immer noch Arbeit spielt keine, versuchen Sie eine der folgenden Möglichkeiten:
- Überprüfen Sie, ob die
mail
in dem Server aktiviert (und diephp.ini
Einstellungen); - OpenSSL Modul aktiviert ist (eine
phpinfo()
ausführen und für OpenSSL suchen)
ich durch den Quellcode von PHPMailer nur sah, wird die Meldung „Es konnte keine instantiate Mail-Funktion“ zeigt an, dass mail()
false zurück.
Können Sie die gleiche Funktion versuchen, aber mit zwei verschiedenen E-Mail-Adressen, die Sie wissen in der Regel E-Mails akzeptiert?
Versuchen neueste Version von PHPMailer Download wenn Sie nicht verwenden, es Fehlerkorrekturen hat. Die Chancen stehen gut, dass Ihre Mailer-Klasse wurde messed mit.
'kann nicht instantiate Mail-Funktion'. Überprüfen Sie einfach Ihre Mailer-Funktion arbeitet oder nicht. viel Mal in dieser Fehlerursache aufgrund Begrenzung von Hosting-Provider .many Zeit Hosting-Provider blockieren Ihre Mailing-Funktion dann in der Regel diese Fehlermeldung angezeigt