Ergebnis 1 bis 22 von 22

Thema: Immer noch Schwierigkeiten mit ##recipient_email##

  1. #1
    Contao-Nutzer
    Registriert seit
    08.01.2014.
    Beiträge
    36

    Standard Immer noch Schwierigkeiten mit ##recipient_email##

    Hallo,

    ich habe hier auf einer lokalen Instanz versucht, Benachrichtigungen in einem isotope-Shop anzulegen. Dabei will der Eintrag ##recipient_email## im Feld Empfänger partout nicht funktionieren. Wenn man an dieser Stelle einen festen, fixen Wert eingibt, funktioniert das sehr wohl. Ich habe gesehen, dass dieser Bug angeblich seit Dezember behoben sein soll. Ich habe auch den Test gemacht, den Platzhalter mal einfach in den Body der Mail einzufügen und tatsächlich steht bei mir auch in diesem Platzhalter Vor- und Nachname des Bestellenden, statt seiner E-Mail-Adresse (so wie es auch in einem Thread vom Dezember 2014/Januar 2015 beschrieben wird). Meine Versionen sind
    Code:
      notification_center 1.2.2 Build 3
      isotope                 2.1.12 Build 2
    In der offiziellen Version beim Provider sind die Versionen noch etwas älter:
    Code:
      notification_center 1.1.4 Build 2
      isotope                2.1.9 Build 3
    Hier funktioniert die Verwendung des Platzhalters ##recipient_email## sehr wohl. Folglich traue ich mich jetzt nicht, das Update auch in der offiziellen Version vorzunehmen.

    Angeblich soll der Bug ja seit der Version v1.2.0-rc2 von notification_center behoben sein. Dann müsste doch auch in 1.2.2 alles okay sein, oder verstehe ich die Versionierung an der Stelle nicht richtig?

    Viele Grüße, Zmann

  2. #2
    Contao-Nutzer
    Registriert seit
    08.01.2014.
    Beiträge
    36

    Standard

    Hallo,

    habe mittlerweile nochmal aktualisiert, aber auch mit
    Code:
      notification_center 1.2.2 Build 3
      isotope               2.1.13 Build 2
    bleiben die Probleme bei mir bestehen.

    Bin ich der einzige, der Probleme mit diesen beiden Versionen hat? Das ist doch keine exotische Kombination. Kann bitte jemand mal kurz sagen, ob das Problem mit ##recipient_email## in der aktuellen Version von notification_center weiter besteht?

    Danke und viele Grüße, Zmann

  3. #3
    Contao-Nutzer
    Registriert seit
    08.01.2014.
    Beiträge
    36

    Standard

    Hallo,

    kann mir bitte jemand kurz bestätigen, ob dieses Problem bekannt ist oder ob der Platzhalter ##recipient_email## mit den Versionen notification_center 1.2.2 Build 3 und isotope 2.1.13 Build 2 funktionieren sollte?

    Danke und viele Grüße, Zmann

  4. #4
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.613
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Kannst du einen kurzen Hinweis geben wann wo der Bug behoben wurde?
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  5. #5
    Contao-Nutzer
    Registriert seit
    08.01.2014.
    Beiträge
    36

    Standard

    Hallo Andreas,

    das ist der Link auf den Bug-Report bei github:
    https://github.com/terminal42/contao...nter/issues/45

    Viele Grüße, Zmann

  6. #6
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.613
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Dass die Email im Body mit Name ausgegeben wird, ist schon korrekt.

    • Steht etwas im system/logs/email.log ?
    • Steht etwas im Backend System Log ?
    • Kannst du mal prüfen ob die Zeile mit "list …" (siehe https://github.com/terminal42/contao...5d3de15d359fb3) in deiner Datei system/modules/notification_center/library/Util/String.php vorhanden ist?
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  7. #7
    Contao-Nutzer
    Registriert seit
    08.01.2014.
    Beiträge
    36

    Standard

    Hallo Andreas,

    Danke für die Hilfe erstmal.

    Ich habe jetzt bei der Benachrichtigung einmal eine fixe E-Mail-Adresse angegeben um zu verifizieren, dass ich nicht irgendwo eine Konfigurationsoption vergessen habe. In dem Fall wird eine Datei system/logs/email.log angelegt. Darin steht: An e-mail has been sent to fixeAdresse Die E-Mail kommt auch tatsächlich an, der Inhalt ist plausibel. Ein im Body der Mail enthaltenes ##recipient_email## liefert Max Frisch, was der korrekte Name des Test-Bestellenden ist (aber enthält nicht seine E-Mail, was ich beim Namen des Platzhalters eher nicht erwartet hätte).

    Wenn ich stattdessen den Platzhalter ##recipient_email## eintrage, wird keine Datei system/logs/email.log angelegt (hatte das Logverzeichnis vorher gelöscht). Es kommt auch keine E-Mail an. Die E-Mail-Adresse des Bestellenden ist dieselbe wie die vorher fix eingetragene (habe ich nochmals für Max Frisch unter Benutzerverwaltung>Mitglieder verifiziert).

    Die Zeile
    Code:
    list($strName, $strEmail) = \String::splitFriendlyEmail($strAddress);
    ist in system/modules/notification_center/library/NotificationCenter/Util/String.php vorhanden (leicht anderer Pfad, aber ich gehe mal davon aus, dass es sich da in Deinem Posting um einen Tippfehler handelte).

    Wenn mit Backend System Log die Datei system/logs/error.log gemeint ist: in der stand nichts bzw. sie wurde gar nicht erst angelegt. Auch im Apache Logfile habe ich nichts Ungewöhnliches gefunden.

    Viele Grüße, Zmann

  8. #8
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.613
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Das ist nun interessant. Natürlich sollte im Body der Name UND die Email stehen.
    • Hast du eine E-Mail in den Systemeinstellungen?
    • Hast du eine E-Mail in der Root-Seite, oder da ev. nur einen Namen?
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  9. #9
    Contao-Nutzer
    Registriert seit
    08.01.2014.
    Beiträge
    36

    Standard

    Hallo Andreas,

    ich hatte in der lokalen Instanz eine externe E-Mail in meinen Systemeinstellungen (wurde nicht ausgeliefert, da hier nur lokale E-Mails erlaubt sind) und gar keine in der Root-Seite. Jetzt habe ich überall interne Adressen angegeben, aber es ergibt sich keine Änderung: der Platzhalter ##recipient_email## wird nicht akzeptiert, konkrete Werte funktionieren. Im Body der Bestätigungs-Email wird immer lediglich der Name des Bestellers angezeigt, wenn man auch dort den Platzhalter ##recipient_email## einträgt.

    Wenn man eine Kombination ##recipient_email##,<lokaleAdresse> für das Feld Empfänger verwendet, funktioniert es bei <lokaleAdresse>, nicht aber bei dem Platzhalter.

    Viele Grüße, Zmann

  10. #10
    Contao-Nutzer
    Registriert seit
    08.01.2014.
    Beiträge
    36

    Standard

    Hallo,

    hat irgendjemand noch einen Vorschlag, wie ich in dieser Sache weiter vorgehen könnte? Ich gehe mal davon aus, dass eine E-Mail an den Kunden mit einer Bestellzusammenfassung eher zum Standardrepertoire in einem Webshop gehört. Also gehe ich mal davon aus, dass es noch mehr Beschwerden gäbe, wenn diese Funktionalität nicht ordentlich funktioniert. Wie könnte ich also weiter vorgehen, um diesen Fehler näher einzugrenzen? Oder gibt es alternative Möglichkeiten für eine E-Mail-Bestellzusammenfassung?

    Viele Grüße, Zmann

  11. #11
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.613
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Das einzige was mir einfällt wäre einen Entwickler deines Vertrauens zu beauftragen, der analysieren kann warum das auf deinem System nicht klappt.
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  12. #12
    Contao-Nutzer
    Registriert seit
    08.01.2014.
    Beiträge
    36

    Standard

    Hallo Andreas,

    ich habe mir jetzt mal einen php-Debugger installiert und das Problem genauer unter die Lupe genommen. Ausgangspunkt war compileRecipients in der von Dir erwähnten String-Klasse.

    Versionen:
    Contao 3.2.20
    notification_centre 1.2.3 Build 2
    isotope 2.1.13
    php 5.6.9

    Parameter für compileRecipients sind
    Code:
    $strRecipients: xxx@myserver.localdomain,##recipient_email##
      $arrTokens /* größeres Array */
      Es gilt $arrTokens["recipientEmail"] == "Max Frisch" <yyy@myserver.localdomain>
    Soweit sieht das alles korrekt aus. In der Methode compileRecipients wird dann der String nach Komma aufgesplittet und für jeden dabei entstehenden String wird static::recursiveReplaceTokensAndTags aufgerufen. Das ergibt keine Veränderung für xxx@myserver.localdomain, spannend wird es bei der Verarbeitung von ##recipient_email##.

    Parameter für recursiveReplaceTokensAndTags ist dann ##recipient_email## und $arrTokens von oben, zusätzlich gibt es noch $intTextFlags, was hier offensichtlich den Wert 3 hat. In recursiveReplaceTokensAndTags wird $arrTokens modifiziert:
    PHP-Code:
    $arrTokens = static::convertToText($arrTokens$intTextFlags); 
    Nach dieser Modifikation gilt:
    Code:
    $arrTokens["recipientEmail"] == "Max Frisch"
    (* und das scheint mir auch genau das Problem zu sein, der interessante Teil ist verschwunden *)

    Beim anschließenden Versuch ##recipient_email## aufzulösen (via static::recursiveReplaceTokensAndTags) wird dann letztlich als Ergebnis $arrTokens["recipientEmail"] zurückgegeben und das ist einfach falsch. Der ursprüngliche Wert in $arrTokens["recipientEmail"] vor der Modifikation war aber korrekt, daher scheint mir der Fehler im Ausführen der obigen Zeile zu liegen:
    PHP-Code:
    $arrTokens = static::convertToText($arrTokens$intTextFlags); 
    Die Funktion convertToText enthält u.a. die Zeile
    PHP-Code:
            // Remove HTML tags but keep line breaks for <br> and <p>
            
    if ($options & static::NO_TAGS) {
                
    $varValue strip_tags(preg_replace('{(?!^)<(br|p|/p).*?/?>\n?(?!$)}is'"\n"$varValue));
            } 
    Hier werden (wie der Kommentar andeutet) HTML-Tags eliminiert, und da "Max Frisch" <yyy@myserver.localdomain> einen Teil enthält, der in spitze Klammern eingefasst ist, bleibt bei der Ersetzung lediglich "Max Frisch" übrig.

    Ich verstehe ehrlich gesagt nicht, warum das nur bei mir Probleme macht.
    Viele Grüße, Zmann

  13. #13
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.109
    Partner-ID
    10107

    Standard

    Das Ganze würde ich gleich mal als Ticket auf GitHub reporten.

  14. #14
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.613
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich vermute es liegt eher daran, dass ".localdomain" von Contao nicht korrekt verarbeitet wird. Wir verwenden die String::splitFriendlyName() (https://github.com/contao/core/blob/....php#L328-L342) um die Email zu extrahieren. Funktioniert das soweit?

    Ausserdem die Validator::isEmail() (https://github.com/contao/core/blob/....php#L154-L157)

    PS: ich benutze nie einen PHP Debugger, ein bisschen var_dump() reicht meistens ;-)
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  15. #15
    Contao-Nutzer
    Registriert seit
    08.01.2014.
    Beiträge
    36

    Standard

    Hallo Andreas,

    String::splitFriendlyName() funktioniert auch mit dem String "Max Frisch" <yyy@myserver.localdomain> (sprich: liefert die zwei korrekten Komponenten als Array zurück).

    Validator::isEmail() liefert false, tut das allerdings auch bei "Max Frisch" <max@gmx.de>.

    Natürlich funktioniert isEmail bei max@gmx.de und auch bei yyy@myserver.localdomain.

    Viele Grüße, Zmann
    Geändert von Zmann (22.06.2015 um 22:04 Uhr)

  16. #16
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.109
    Partner-ID
    10107

    Standard

    Zitat Zitat von andreas.schempp Beitrag anzeigen
    Ich vermute es liegt eher daran, dass ".localdomain" von Contao nicht korrekt verarbeitet wird. Wir verwenden die String::splitFriendlyName() (https://github.com/contao/core/blob/....php#L328-L342) um die Email zu extrahieren. Funktioniert das soweit?

    Ausserdem die Validator::isEmail() (https://github.com/contao/core/blob/....php#L154-L157)

    PS: ich benutze nie einen PHP Debugger, ein bisschen var_dump() reicht meistens ;-)
    Hm, er hatte es ja schon analysiert, laut ihm liegt es ja an NotificationCenter\Gateway\Base::convertToText da dort vermeintliche HTML Tags entfernt und somit auch E-Mail Adressen in der Form "Lorem Ipsum" <dolor@sit.amet> zerstört werden.

  17. #17
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.613
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ah das ist interessant, das heisst die E-Mail wird korrekt gesendet nur im Inhalt nicht angezeigt… wobei uns das auch nicht wirklich weiter bringt
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  18. #18
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.109
    Partner-ID
    10107

    Standard

    Zitat Zitat von andreas.schempp Beitrag anzeigen
    Ah das ist interessant, das heisst die E-Mail wird korrekt gesendet nur im Inhalt nicht angezeigt… wobei uns das auch nicht wirklich weiter bringt
    Verstehe nicht was du meinst, das Problem ist ja, dass ##recipient_email## mit "Lorem Ipsum" <dolor@sit.amet> ersetzt wird und daraus wiederum wird "Lorem Ipsum" - und daher wird auch keine E-Mail an ##recipient_email## gesendet.

  19. #19
    Contao-Nutzer
    Registriert seit
    08.01.2014.
    Beiträge
    36

    Standard

    @Spooky: vielen Dank für Deine klärenden Worte!

    @Andreas: ich versuche es nochmal kurz zusammenzufassen:
    • Die Email Adresse des Bestellers ist zum Zeitpunkt des Aufrufs von compileRecipients korrekt im Parameter $arrTokens["recipientEmail"] eingetragen: "Max Frisch" <yyy@myserver.localdomain>
    • Die Funktion static::recursiveReplaceTokensAndTags wird von compileRecipients später u.a. mit den beiden Parametern ##recipient_email## und $arrTokens aufgerufen
    • Der vorher korrekte Eintrag "Max Frisch" <yyy@myserver.localdomain> in $arrTokens["recipientEmail"] wird in static::recursiveReplaceTokensAndTags in der Zeile
      PHP-Code:
      $arrTokens = static::convertToText($arrTokens$intTextFlags); 
      modifiziert. Anschließend steht in $arrTokens["recipientEmail"] fälschlicherweise "Max Frisch", die eigentliche E-Mail ist also weggefallen
    • Später wird das ##recipient_email## korrekt als Platzhalter erkannt und dafür $arrTokens["recipientEmail"] eingesetzt. Dort steht aber jetzt lediglich noch "Max Frisch", was keine korrekte Email-Adresse ist.
    • Meiner Meinung nach müsste das immer schiefgehen, wenn in $arrTokens["recipientEmail"] eine komplexe Adresse der Form "Lorem Ipsum" <dolor@sit.amet> steht. Einfache Email-Adressen der Form dolor@sit.amet machen vermutlich kein Problem. Da Contao die komplexe Email-Adresse selbst aus den Benutzerangaben erzeugt (beim Benutzer ist eigentlich lediglich eine einfache Email-Adresse spezifiziert), müssten doch auch noch andere dieses Problem haben.


    Viele Grüße, Zmann

  20. #20
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.613
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ok, ich glaube ich verstehe das Problem, auch wenn ich keine Idee habe wie wir das lösen können. Kannst du bitte ein Bugreport bei GitHub (https://github.com/terminal42/contao..._center/issues) machen?
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  21. #21
    Contao-Nutzer
    Registriert seit
    08.01.2014.
    Beiträge
    36

    Standard

    Okay, Bug-Report ist eingestellt.

    Viele Grüße, Zmann

  22. #22
    Contao-Fan
    Registriert seit
    11.08.2013.
    Beiträge
    287

    Standard

    Habe das gleiche Problem die mail kommt nicht an weil der Name anstatt die Mail Adresse drin steht.

    Habe folgendes auf Grund dieser Diskussion gefunden

    https://github.com/codefog/contao-ha...0e4527d0859ccf

    Die Datei StringUtil.php existiert 5 mal in meine Conto installation. Welche aus ich denn nun anpassen?

    Code:
    composer/vendor/codefog/contao-haste/library/Haste/Util
    composer/vendor/terminal42/notification_center/library/NotificationCenter/Util
    system/modules/notification_center/library/NotificationCenter/Util
    system/modules/haste/library/Haste/Util
    system/modules/core/library/Contao

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •