Newsletter Probleme

Alles rund um Module und Plugins in CONTENIDO 4.10.
Antworten
lunsen_de
Beiträge: 297
Registriert: Mo 17. Okt 2005, 20:26
Wohnort: Weimar
Kontaktdaten:

Newsletter Probleme

Beitrag von lunsen_de » Do 3. Dez 2020, 15:31

Hallo ich habe beim Versand des Newsletters wieder ein selsames Problem.

Ein System geupdated von 4.10 auf 4.10.1 (genannt System 1)
Das zweite System Standardinstallation 4.10.1 (Beispielmandant, genannt System 2)

Beide Syteme auf dem selben Server. PHP 7.3
Konfiguration: Typ für E-Mails: PHP mail

Der Versand eines Textnewsletter klappt bei beiden.
Der Versand eines HTML Newsletter spukt beim Versenden (Testnewsletter) auf System 1 folgende Meldung aus:
Der Newsletter wurde nicht gesendet (im Ganzen oder in Teilen):
Erfolgreich:
Keiner
Fehlermeldungen:
Systemadministrator (email@domain.de): Newsletter an email@domain.de konnte nicht gesendet werden: Keine HTML Nachricht verfügbar
(Die E-Mail habe ich jetzt natürlich geändert.)
Diese Nachricht hatte ich bisher noch nicht gesehen, besonders zu "Keine HTML Nachricht verfügbar" finde ich Nichts.

Die Errorlog ist leer. Der erstellte Newsletter wird ordnungsgemäß in der Kategorie HTML-Newsletter erzeugt/angezeigt.

Bei System 2 läuft der Versand.

Hat jemand eine Idee dazu?

PS: Jetzt ist mir beim Probieren noch folgendes augefallen: Die Adresse an die nicht gesendet werden kann ich immer meine E-Mail Adresse, wie in den Einstellungen beim Testempfänger eingestellt. Stellt man den Testempfänger auf eine Gruppe z.B. Gruppe1 die andere Adressen entthält und drückt speichern, wird der Testversand trotzdem nur an meine Adresse gesendet/probiert zu senden (ich bin kein Mitglied der Gruppe 1). Wechselt man auf einen anderen Navigationspunkt (z.B. Content Artikel) und kommt wieder zum Newsletter steht bei Einstellungen Test E-Mail-Adresse wieder meine E-Mail-Adresse, also nicht das zu letzt gespeicherte Test Empfänger (Gruppe1). Sehr seltsam und keine Errorlog Einträge.

Grüße larslunsen

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Newsletter Probleme

Beitrag von xmurrix » Do 3. Dez 2020, 21:36

Hallo lunsen_de,

diese Fehlermeldung wird in der Datei "contenido/plugins/newsletter/classes/class.newsletter.php" in Zeile 669 oder 671 erzeugt.

Die Ursache dafür ist ein Problem beim Lesen der HTML-Nachricht aus dem Konfigurierten Artikel. Schau dir die Funktion getHTMLMessage() in der "class.newsletter.php" an, die sollte den HTML-Newsletter liefern. Entweder gibt es den Artikel nicht, oder die globalen Variablen $lang und/oder $client werden irgendwann überschrieben, so dass kein Artikel gefunden wird.

Was den Versand des Testnewsletters angeht, so wird meines Wissens der Testnewsletter an den aktuellen Backend-Benutzer versendet, außer es ist links oben unter „Einstellungen“ als Test-Empfänger eine Gruppe gewählt, dann geht der Testnewsletter an diese Gruppe.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

lunsen_de
Beiträge: 297
Registriert: Mo 17. Okt 2005, 20:26
Wohnort: Weimar
Kontaktdaten:

Re: Newsletter Probleme

Beitrag von lunsen_de » Fr 4. Dez 2020, 08:29

Hallo, deine Erläuterungen habe ich soweit verstanden, aber was kann ich noch tun?

Ich habe derweil das Plugin deinstalliert und wieder installiert, gecheckt ob die Dateiene auf dem Server (FTP) denen aus der Installationgrundlage 4.10.1 entsprechen.
Die Artikel, also Vorlage und der Erzeugte/Gespeicherte liegen in der richtigen Kategorie und lassen sich problemlos öffnen.
In der Datenbank, in der Tabelle con_pi_news sind die Eintröge für idart, lang und client korrekt.

Wo kann ich noch nachschauen, nacharbeiten, ist was an der Installation oder der Datenbank nicht in Ordnung? Ich habe keinen Ansatz.

PS: Hinzu kommt: beim Erzeugen des Newsletter Jobs kommt folgende Fehlermeldung:
Versand-Job für diesen Newsletter wurde nicht erzeugt! Bitte die Angaben überprüfen (Absender Adresse befüllt? Mindestens ein Empfänger?)

Die Angaben sind alle drin!

Grüße larslunsen

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Newsletter Probleme

Beitrag von xmurrix » Fr 4. Dez 2020, 09:17

Morgen.
...deine Erläuterungen habe ich soweit verstanden, aber was kann ich noch tun?...
Wie ich schon zuvor erwähnt habe, kannst du dir die Funktion getHTMLMessage() in der "class.newsletter.php" genauer ansehen/debuggen.

1. Wird in der Funktion erkannt, dass es überhaupt einen Newsletterartikel gibt?

Code: Alles auswählen

        if ($this->get("type") == "html" && $this->get("idart") > 0 && $this->htmlArticleExists()) {
2. Ist die URL zum Newsletterartikel richtig?

Code: Alles auswählen

$frontendURL.$sFile
3. Liefert die Anfrage des Newsletterartikels überhaupt ein Ergebnis?

Code: Alles auswählen

if ($output = $handler->getRequest(true, true)) {
4. Falls 3. nicht klappt, Warum liefert die Anfrage zum Newsletterartikel kein Ergebnis? Gibt es etwa einen HTTP-Redirect, mit der der Request-Handler nicht klarkommt? Du kannst ja die URL zum Newsletterartikel im Browser eingeben um zu prüfen, ob es da einen Redirect gibt, z. B. von domain.de auf www.domain.de oder von http zu https.

...Hinzu kommt: beim Erzeugen des Newsletter Jobs kommt folgende Fehlermeldung:
Versand-Job für diesen Newsletter wurde nicht erzeugt! Bitte die Angaben überprüfen (Absender Adresse befüllt? Mindestens ein Empfänger?)...
Das ist in der Datei "contenido/plugins/newsletter/includes/include.newsletter_edit.php" in Zeile 109 ff drin:

Code: Alles auswählen

    $oJobs = new NewsletterJobCollection();
    $oJob = $oJobs->create($idnewsletter, $oClientLang->getProperty("newsletter", "idcatart"));
    unset($oJobs);

    if ($oJob) {
        $oPage->displayOk(i18n("Newsletter dispatch job has been added for this newsletter", 'newsletter'));
    } else {
        $oPage->displayError(i18n("Newsletter dispatch job has been not been added! Please check newsletter details", 'newsletter'));
    }
Du müsstest also prüfen, warum der Aufruf von $oJobs->create(...) bei dir nicht den neu erzeugten Newsletter-Job liefert.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

lunsen_de
Beiträge: 297
Registriert: Mo 17. Okt 2005, 20:26
Wohnort: Weimar
Kontaktdaten:

Re: Newsletter Probleme

Beitrag von lunsen_de » Fr 4. Dez 2020, 09:41

Hallo, danke für die Info.

Da ich kein PHP Spezialist bin, kannst du mir nochmal auf die Spünge helfen/sagen, wie ich das debuggen mache?
Was muss ich da in die PHP Datei schreiben (und wo) und dann tun, damit die Ausgabe erfolgt.

Vielen Dank.

Gruß larslunsen

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Newsletter Probleme

Beitrag von xmurrix » Fr 4. Dez 2020, 11:33

...kannst du mir nochmal auf die Spünge helfen/sagen, wie ich das debuggen mache?...
Um PHP-Anwendungen zu debuggen brauchst du entweder XDebug oder Zend Debugger.

Anleitung für PhpStorm:
https://www.jetbrains.com/de-de/phpstor ... debugging/

Anleitung für Visual Studio Code:
https://medium.com/@inmune7/debugging-p ... 429aa0178a

Längerfristig wäre die Verwendung des Debuggers in der IDE die beste Lösung. Das Einrichten und die Verwendung des Debuggers kann aber ein Gefrickel sein, einfacher ist es, wenn du es entweder direkt ausgibst oder loggst.

Ausgabe:

Code: Alles auswählen

$debugger = cDebug::getDebugger(cDebug::DEBUGGER_VISIBLE);
$debugger->show($variable, 'Die Variable ...');
Dann siehst du in der Ausgabe den Typ und Inhalt der Variable $variable.

Loggen:

Code: Alles auswählen

$debugger = cDebug::getDebugger(cDebug::DEBUGGER_FILE);
$debugger->show($variable, 'Die Variable ...');
Dann wird der Wert der Variable $variable in data/logs/debug.log geschrieben und du kannst in der debug.log nachsehen.
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

lunsen_de
Beiträge: 297
Registriert: Mo 17. Okt 2005, 20:26
Wohnort: Weimar
Kontaktdaten:

Re: Newsletter Probleme

Beitrag von lunsen_de » Fr 4. Dez 2020, 14:43

Hallo, ich habe das Problem gefunden.

Ich habe zum Test nocheinmal ein Frisches Sytem auf dem selben Account in einen anderen Unterordner gemacht, 4.10.1 mit Beispielmandant. Dort tauchte die selbe Fehlermeldung/das selbe Verhalten auf.
Dabei fiel mir auf, das es etwas mit dem ssl Zertifikat zu tun haben könnte.
Ich musste das neue System mit einer anderen Domain, also nicht der Hauptdomain des Kunden, aufrufen, da die Hauptdomain noch auf eine altes Contenido 4.8 zeigt und ich für die beiden Systeme/Domains unterschiedliche PHP Versionen brauche (5.6 und 7.3). Daher hatte die 2. Domain nicht das richtige Zertifikat.
Als ich die Pfade für Frontend und Backend angepasst hatte (also für die Zweitdomain auf http) lief der Testversand ohne Probleme.

Velen Dank noch einmal.

Grüße larslunsen

lunsen_de
Beiträge: 297
Registriert: Mo 17. Okt 2005, 20:26
Wohnort: Weimar
Kontaktdaten:

Re: Newsletter Probleme

Beitrag von lunsen_de » Mi 9. Dez 2020, 09:22

Hallo, nachdem das eine Problem gelöst ist besteht immernoch das Problem, dass das Speichern eines anderen Testempfängers nicht funktioniert.

Ich habe das auf einem 4.9.12 getestet, dort funktioniert das.
Also ich wähle als Testempfänger z.B die Gruppe Test (wechsle von Meine E-Mail-Adresse auf Gruppe Test) drücke speichern und verlasse den Bereich, z.B. zu Content Artikel. Wenn ich jetzt zurückkomme steht bei der 4.9.12 bei Test-Empfänger Gruppe Test.
Wenn ich das bei der 4.10.1 mache steht dann trotz speichern wieder auf Meine E-Mail-Adresse.

Schlimmer ist noch: Wenn ich die den Testempfänger wechsle auf Gruppe Test, speichere und dann gleich den Testnewsletter verschicken will, fragt mich das Popup noch, ob ich an Gruppe Test senden will, ich drücke ok und dann steht oben die Meldung: Testnewsletter erfolgreich an meine E-Mail-Adresse versendet (also nicht an die Gruppe Test).

Beide Syteme auf dem selben Server und Errorlog leer. Auch bei einer weiteren 4.10.1 Beispielmandant Installation dasselbe. Kann das jemand reproduzieren und/oder den Fehler identifizieren?

Grüße larslunsen.

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Newsletter Probleme

Beitrag von xmurrix » Do 24. Dez 2020, 16:37

Hallo larslunsen,
...Also ich wähle als Testempfänger z.B die Gruppe Test (wechsle von Meine E-Mail-Adresse auf Gruppe Test) drücke speichern und verlasse den Bereich, z.B. zu Content Artikel. Wenn ich jetzt zurückkomme steht bei der 4.9.12 bei Test-Empfänger Gruppe Test.
Wenn ich das bei der 4.10.1 mache steht dann trotz speichern wieder auf Meine E-Mail-Adresse.

Schlimmer ist noch: Wenn ich die den Testempfänger wechsle auf Gruppe Test, speichere und dann gleich den Testnewsletter verschicken will, fragt mich das Popup noch, ob ich an Gruppe Test senden will, ich drücke ok und dann steht oben die Meldung: Testnewsletter erfolgreich an meine E-Mail-Adresse versendet (also nicht an die Gruppe Test)...
Das kann ich leider so nicht bestätigen.

Wenn ich im Backend unter "Extras > Newsletter" im Menü links oben unter "Einstellungen" als "Test-Empfänger" meine E-Mail-Adresse oder eine Gruppe wähle, die Auswahl speichere, wird mir nach dem Klick auf den Button "Test-Newsletter versenden", im Popup die zuvor vorgenommene Auswahl angezeigt. Gehe ich auf eine andere Seite und komme zum Newsletter-Bereich zurück, steht im Menü links oben unter "Einstellungen" als "Test-Empfänger" immer noch die vorherige Auswahl und nach erneutem Klick auf den Button "Test-Newsletter versenden" wird diese wieder im Popup angezeigt.

Getestet habe ich das mit einer frischen CONTENIDO 4.10.1 Installation und mit der aktuellen Entwicklungsbranch.

Gespeichert wird diese Einstellung in CONTENIDO 4.10.1 der Datei contenido/plugins/newsletter/includes/include.newsletter_menu.php in Zeile 54:

Code: Alles auswählen

    $oUser->setProperty("newsletter", "test_idnewsgrp_lang" . $lang, (int) $_REQUEST["selTestDestination"]);
Wie man im Code sehen kann, wird dies für die aktuelle Sprache gespeichert.
Entweder hast du nach dem Setzen der Einstellung die Sprache gewechselt oder das Speichern hat nicht funktioniert. Im letzteren Fall steht mit etwas Glück der Grund in der errorlog.txt drin.

Frohe Weihnachten und Grüße

xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

lunsen_de
Beiträge: 297
Registriert: Mo 17. Okt 2005, 20:26
Wohnort: Weimar
Kontaktdaten:

Re: Newsletter Probleme

Beitrag von lunsen_de » Mo 4. Jan 2021, 10:54

Hallo xmurrix,

erst einmal ein gesundes neues Jahr 2021 und danek für deine Ausführungen.
Leider komme ich da aber immer noch nicht weiter und das Problem besteht weiterhin.
Ich habe jetzt mal versucht die PHP Version auf 7.2 zu wechseln mit dem gleichen Ergebnis.

Also bei mir speichert er den Testempfänger scheinbar nicht richtig (habe es nochmal an beiden 4.10.1 mit PHP 7.3 und 7.2 getestet). Wechsle ich auf auf eine andere Testadresse, navigiere zu einem anderen Contenido Bereich und komme dann zurück ist immer wieder "Meine E-Mail-Adresse" eingetragen. Leider ist in der Errorlog auch Nichts zu finden. Auch in der Serverlog nicht.

Nochmal zu:
... die Auswahl speichere, wird mir nach dem Klick auf den Button "Test-Newsletter versenden", im Popup die zuvor vorgenommene Auswahl angezeigt. ...
Im Popup zeigt er nach dem speichern und gleich auf Testnewsletter klicken auch die neue Testadresse an, ABER nach dem bestätigen auf ok wird mir mit grünem Text bestätigt das er gesendet wurde und zwar wieder an "Meine Test-Email-Adresse", also nicht die zuvor gespeicherte und im Popup angegebene.

Ich weiß nicht wonach ich noch suchen soll, hast du noch eine Idee? Gibt es vielleicht noch irgendwelche Servereinstellungen, die bei 4.10 anders sein müssten?

PS: Habe es gerade noch an einer 4.10.0 gestestet. Leider das selbe Probelem. Zur Info: auf dem Server laufen viele Contenido Versionen (meist 4.9) bei denen das Problem nicht auftritt. Was sich mit der neuen PHP Version in den Errorlogs zeigt ist nur:

Code: Alles auswählen

[04-Jan-2021 09:05:11 UTC] PHP Warning:  count(): Parameter must be an array or an object that implements Countable in ...../contenido/plugins/newsletter/includes/include.recipients_edit.php on line 128
[04-Jan-2021 09:05:16 UTC] PHP Warning:  count(): Parameter must be an array or an object that implements Countable in ...../contenido/plugins/newsletter/includes/include.recipients.group_edit.php on line 119
Aber das hatten wir ja in einem anderen Beitrga schon diskutiert. Das es etwas damit zu tun hat kann ich mir nicht vorstellen.

Grüße larslunsen

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Newsletter Probleme

Beitrag von xmurrix » Mo 4. Jan 2021, 23:05

Hallo larslunsen,

danke dir und auch ich wünsche dir ein gesundes neues Jahr.

...Ich weiß nicht wonach ich noch suchen soll, hast du noch eine Idee? Gibt es vielleicht noch irgendwelche Servereinstellungen, die bei 4.10 anders sein müssten?...
In CONTENIDO 4.10.1 steht in der Datei contenido/plugins/newsletter/includes/include.newsletter_edit.php ab Zeile 127 ff. folgender Code drin:

Code: Alles auswählen

    // Get test destination
    if ($perm->have_perm_area_action($area, "news_send_test")) {
        $iTestIDNewsGroup = (int) $oUser->getProperty("newsletter", "test_idnewsgrp_lang" . $lang);
//        $iTestIDNewsGroup = 0;
    } else {
        $iTestIDNewsGroup = 0; // If user doesn't have the news_send_test right,
                               // just send to himself
    }
Der Test-Newsletter wird nur an die zuvor gewählte Test-Gruppe versendet wenn der aktuell angemeldete Backend-Benutzer, also du, die entsprechende Berechtigung (news_send_test) dafür hat. Falls nicht, geht der Test-Newsletter an die E-Mail Adresse des Backend-Benutzers. Vielleicht hast du also keine Berechtigung dafür; das ist das Einzige, was mir zu deinem Problem einfällt.

Du kannst auch die Stelle genauer unter die Lupe nehmen, um herauszufinden, warum der Test-Newsletter an dich geht und nicht an die gewählte Gruppe.

Grüße
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

homtata
Beiträge: 1142
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: Newsletter Probleme

Beitrag von homtata » Do 19. Aug 2021, 08:43

Hallo larslunsen,

ich habe das in einer 4.10.1 mit PHP7.3 auch nochmal gecheckt. Ich kann Testgruppen anlegen und diese problemlos dauerhaft gespeichert als Testempfänger zuweisen in den Grundeinstellungen des Newsletter.
Kannst Du noch was dazu sagen, ob sich das Problem gelöst hat, ob es tatsächlich ein Berechtigungsproblem war oder ob du weitere Erkenntnisse hast?
Beste Grüße!

Antworten