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.

War es hilfreich?

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 die php.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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top