Hallo,
ich bitte euch um Eure Hilfe.
Ich soll einen Newsletter versenden. Habe das Modul HTML-Newsletter im Einsatz und habe die E-Mail-Adressen per Script in die Datenbank importiert.
Jetzt bekomme ich beim Versenden des Newsletters die Fehlermeldungen "Newsletter konnte an *Emailadresse* nicht versendet werden."
Kann mir bitte jemand helfen?
Newsletter konnte nicht versendet werden
Jetzt habe ich bei einem anderen Empfänger folgende Meldung erhalten:
"Empfänger hat einen inkompatiblen oder leeren Schlüssel"
Ich schätze jetzt, dass es mit dem "HASH-Wert" zusammen hängt. Wenn ich die entsprechende E-Mail-Adresse bearbeite, bekommt der Eintrag einen neunen Wert, der Newsletter kann aber trotzdem nicht versendet werden.
"Empfänger hat einen inkompatiblen oder leeren Schlüssel"
Ich schätze jetzt, dass es mit dem "HASH-Wert" zusammen hängt. Wenn ich die entsprechende E-Mail-Adresse bearbeite, bekommt der Eintrag einen neunen Wert, der Newsletter kann aber trotzdem nicht versendet werden.
Das Problem scheint an folgender Aktualsierung des HTML-Newsletter Moduls zu liegen, dass scheinbar in der 4.6.15 nicht mehr funktioniert:
Code:
$mail = new phpmailer();
$mail->From = $from;
$mail->FromName = $from;
$mail->AddAddress($to);
$mail->Mailer = "mail";
$mail->Subject = $subject;
$mail->Body = $message2."\n\n".$foot;
// $mail->AltBody = $body;
if (!$mail->Send()) {
$result[] = $name . " (" . $to . "): " . sprintf(i18n("Newsletter to %s could not be sent"), $to);
} else {
$result[] = $name . " (" . $to . "): " . i18n("Sent successfully");
}
ersetzen durch:
Code:
$messageHTML2 = str_replace("MAIL_NAME", "$name", $messageHTML);
$messageHTML2 = str_replace("MAIL_UNSUBSCRIBE", "<a href=\"".$path."unsubscribe=".$key."\">".$path."unsubscribe=".$key."</a>", $messageHTML2);
$messageHTML2 = str_replace("MAIL_CHANGE", "<a href=\"".$path."change=".$key."\">".$path."change=".$key."</a>", $messageHTML2);
$messageHTML2 = str_replace("MAIL_STOP", "<a href=\"".$path."stop=".$key."\">".$path."stop=".$key."</a>", $messageHTML2);
$messageHTML2 = str_replace("MAIL_GOON", "<a href=\"".$path."goon=".$key."\">".$path."goon=".$key."</a>", $messageHTML2);
$boundary = md5(uniqid(time()));
$headers = 'From: ' . $from . "\n";
$headers .= 'To: ' . $to . "\n";
$headers .= 'Return-Path: ' . $from . "\n";
$headers .= 'MIME-Version: 1.0' ."\n";
$headers .= 'Content-Type: multipart/alternative; boundary="' . $boundary . '"' . "\n\n";
$headers .= $message2."\n\n".$foot . "\n";
$headers .= '--' . $boundary . "\n";
$headers .= 'Content-Type: text/plain; charset=ISO-8859-1' ."\n";
$headers .= 'Content-Transfer-Encoding: 8bit'. "\n\n";
$headers .= $message2."\n\n".$foot . "\n";
$headers .= '--' . $boundary . "\n";
$headers .= 'Content-Type: text/HTML; charset=ISO-8859-1' ."\n";
$headers .= 'Content-Transfer-Encoding: 8bit'. "\n\n";
$headers .= $messageHTML2."<p>".$foot."</p></body></html>\n";
$headers .= '--' . $boundary . "--\n";
$mailOk=mail('', $subject,'', $headers);
if ($mailOk) {
$result[] = $name . " (" . $to . "): " . i18n("Sent successfully");
} else {
$result[] = $name . " (" . $to . "): " . sprintf(i18n("Newsletter to %s could not be sent"), $to);
}
Weiß jemand was das Problem ist?
Code:
$mail = new phpmailer();
$mail->From = $from;
$mail->FromName = $from;
$mail->AddAddress($to);
$mail->Mailer = "mail";
$mail->Subject = $subject;
$mail->Body = $message2."\n\n".$foot;
// $mail->AltBody = $body;
if (!$mail->Send()) {
$result[] = $name . " (" . $to . "): " . sprintf(i18n("Newsletter to %s could not be sent"), $to);
} else {
$result[] = $name . " (" . $to . "): " . i18n("Sent successfully");
}
ersetzen durch:
Code:
$messageHTML2 = str_replace("MAIL_NAME", "$name", $messageHTML);
$messageHTML2 = str_replace("MAIL_UNSUBSCRIBE", "<a href=\"".$path."unsubscribe=".$key."\">".$path."unsubscribe=".$key."</a>", $messageHTML2);
$messageHTML2 = str_replace("MAIL_CHANGE", "<a href=\"".$path."change=".$key."\">".$path."change=".$key."</a>", $messageHTML2);
$messageHTML2 = str_replace("MAIL_STOP", "<a href=\"".$path."stop=".$key."\">".$path."stop=".$key."</a>", $messageHTML2);
$messageHTML2 = str_replace("MAIL_GOON", "<a href=\"".$path."goon=".$key."\">".$path."goon=".$key."</a>", $messageHTML2);
$boundary = md5(uniqid(time()));
$headers = 'From: ' . $from . "\n";
$headers .= 'To: ' . $to . "\n";
$headers .= 'Return-Path: ' . $from . "\n";
$headers .= 'MIME-Version: 1.0' ."\n";
$headers .= 'Content-Type: multipart/alternative; boundary="' . $boundary . '"' . "\n\n";
$headers .= $message2."\n\n".$foot . "\n";
$headers .= '--' . $boundary . "\n";
$headers .= 'Content-Type: text/plain; charset=ISO-8859-1' ."\n";
$headers .= 'Content-Transfer-Encoding: 8bit'. "\n\n";
$headers .= $message2."\n\n".$foot . "\n";
$headers .= '--' . $boundary . "\n";
$headers .= 'Content-Type: text/HTML; charset=ISO-8859-1' ."\n";
$headers .= 'Content-Transfer-Encoding: 8bit'. "\n\n";
$headers .= $messageHTML2."<p>".$foot."</p></body></html>\n";
$headers .= '--' . $boundary . "--\n";
$mailOk=mail('', $subject,'', $headers);
if ($mailOk) {
$result[] = $name . " (" . $to . "): " . i18n("Sent successfully");
} else {
$result[] = $name . " (" . $to . "): " . sprintf(i18n("Newsletter to %s could not be sent"), $to);
}
Weiß jemand was das Problem ist?
Die Änderung ersetzt den Versand über die phpmailer-Klasse mit dem Versand über die PHP-mail()-Funktion.
Unter Tips&Tricks findest Du Hinweise zum Versand via mail()-Funktion (z.B. bei Hosteurope), die solltest Du mal probieren. Ansonsten musst Du prüfen, ob Du auf Deinem Server via mail() Mails versenden kannst (d.h. ein Mailer für mail() in den PHP-Einstellungen festgelegt wurde).
Gruß
HerrB
Unter Tips&Tricks findest Du Hinweise zum Versand via mail()-Funktion (z.B. bei Hosteurope), die solltest Du mal probieren. Ansonsten musst Du prüfen, ob Du auf Deinem Server via mail() Mails versenden kannst (d.h. ein Mailer für mail() in den PHP-Einstellungen festgelegt wurde).
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Hallo Herr B,
also ehrlich gesagt ist es mir noch immer unklar warum folgende Zeilen Code in der Version 4.6.8 funktionieren und in der Version 4.6.15 nicht.
Ich habe gestern zum ersten Mal den HTML-Newsletter in der 4.6.15 verwendet und hatte dann dieses Problem (natürlich genau da, wo der Newsletter unbedingt gleich raus sollte
) ich habe dann ein anderes Contenido in der Version 4.6.8 dafür verwendet - da hat das Script dann einwandfrei funktioniert.
Die zwei Systeme liegen beim gleichen Provider (all-inkl) auf Servern mit den gleichen Voraussetzungen (PHP5, MySQL5) daher scheint es mir unwahrscheinlich, dass dies das Problem ist?
also ehrlich gesagt ist es mir noch immer unklar warum folgende Zeilen Code in der Version 4.6.8 funktionieren und in der Version 4.6.15 nicht.
Code: Alles auswählen
$messageHTML2 = str_replace("MAIL_NAME", "$name", $messageHTML);
$messageHTML2 = str_replace("MAIL_UNSUBSCRIBE", "<a href=\"".$path."unsubscribe=".$key."\">".$path."unsubscribe=".$key."</a>", $messageHTML2);
$messageHTML2 = str_replace("MAIL_CHANGE", "<a href=\"".$path."change=".$key."\">".$path."change=".$key."</a>", $messageHTML2);
$messageHTML2 = str_replace("MAIL_STOP", "<a href=\"".$path."stop=".$key."\">".$path."stop=".$key."</a>", $messageHTML2);
$messageHTML2 = str_replace("MAIL_GOON", "<a href=\"".$path."goon=".$key."\">".$path."goon=".$key."</a>", $messageHTML2);
$boundary = md5(uniqid(time()));
$headers = 'From: ' . $from . "\n";
$headers .= 'To: ' . $to . "\n";
$headers .= 'Return-Path: ' . $from . "\n";
$headers .= 'MIME-Version: 1.0' ."\n";
$headers .= 'Content-Type: multipart/alternative; boundary="' . $boundary . '"' . "\n\n";
$headers .= $message2."\n\n".$foot . "\n";
$headers .= '--' . $boundary . "\n";
$headers .= 'Content-Type: text/plain; charset=ISO-8859-1' ."\n";
$headers .= 'Content-Transfer-Encoding: 8bit'. "\n\n";
$headers .= $message2."\n\n".$foot . "\n";
$headers .= '--' . $boundary . "\n";
$headers .= 'Content-Type: text/HTML; charset=ISO-8859-1' ."\n";
$headers .= 'Content-Transfer-Encoding: 8bit'. "\n\n";
$headers .= $messageHTML2."<p>".$foot."</p></body></html>\n";
$headers .= '--' . $boundary . "--\n";
$mailOk=mail('', $subject,'', $headers);
if ($mailOk) {
$result[] = $name . " (" . $to . "): " . i18n("Sent successfully");
} else {
$result[] = $name . " (" . $to . "): " . sprintf(i18n("Newsletter to %s could not be sent"), $to);
}

Die zwei Systeme liegen beim gleichen Provider (all-inkl) auf Servern mit den gleichen Voraussetzungen (PHP5, MySQL5) daher scheint es mir unwahrscheinlich, dass dies das Problem ist?
Also ich habe jetzt das Problem gefunden, vielleicht hilft es ja auch jemanden anderen.
Die Lösung wurde auch bereits in diesem Thread (http://www.contenido.org/forum/viewtopi ... r&start=30)angeobten , nur habe ich den Zusammenhang nicht kapiert:
Der Code
muss durch den folgenden ersetzt werden:
Den Fehler dabei macht der leere Empfänger in der Zeile:
Vielleicht hilft das auch jemanden anderen weiter.
Die Lösung wurde auch bereits in diesem Thread (http://www.contenido.org/forum/viewtopi ... r&start=30)angeobten , nur habe ich den Zusammenhang nicht kapiert:
Der Code
Code: Alles auswählen
$headers = 'From: ' . $from . "\n";
$headers .= 'To: ' . $to . "\n";
$headers .= 'Return-Path: ' . $from . "\n";
$headers .= 'MIME-Version: 1.0' ."\n";
$headers .= 'Content-Type: multipart/alternative; boundary="' . $boundary . '"' . "\n\n";
$headers .= $message2."\n\n".$foot . "\n";
$headers .= '--' . $boundary . "\n";
$headers .= 'Content-Type: text/plain; charset=ISO-8859-1' ."\n";
$headers .= 'Content-Transfer-Encoding: 8bit'. "\n\n";
$headers .= $message2."\n\n".$foot . "\n";
$headers .= '--' . $boundary . "\n";
$headers .= 'Content-Type: text/HTML; charset=ISO-8859-1' ."\n";
$headers .= 'Content-Transfer-Encoding: 8bit'. "\n\n";
$headers .= $messageHTML2."<p>".$foot."</p></body></html>\n";
$headers .= '--' . $boundary . "--\n";*/
$mailOk=mail('', $subject,'', $headers);
Code: Alles auswählen
$headers = 'From: ' . $from . "\n";
$headers .= 'To: ' . $to . "\n";
$headers .= 'Return-Path: ' . $from . "\n";
$headers .= 'MIME-Version: 1.0' ."\n";
$headers .= 'Content-Type: multipart/alternative; boundary="' . $boundary . '"' . "\n\n";
$messagebody = 'This is a multi-part message in MIME format.'. "\n";
$messagebody .= '--' . $boundary . "\n";
$messagebody .= 'Content-Type: text/plain; charset=ISO-8859-1' ."\n";
$messagebody .= 'Content-Transfer-Encoding: 8bit'. "\n\n";
$messagebody .= $message2."\n\n".$foot . "\n";
$messagebody .= '--' . $boundary . "\n";
$messagebody .= 'Content-Type: text/HTML; charset=ISO-8859-1' ."\n";
$messagebody .= 'Content-Transfer-Encoding: 8bit'. "\n\n";
$messagebody .= $messageHTML2."<p>".$foot."</p></body></html>\n";
$messagebody .= '--' . $boundary . "--\n";
$mailOk=mail($to, $subject,$messagebody, $headers);
Code: Alles auswählen
mail('', $subject,'', $headers);