Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mailversand nicht möglich mit embedimage in Benachrichtigungen #369

Open
marcfunkDE opened this issue Oct 30, 2024 · 10 comments
Open

Mailversand nicht möglich mit embedimage in Benachrichtigungen #369

marcfunkDE opened this issue Oct 30, 2024 · 10 comments
Assignees
Labels
Milestone

Comments

@marcfunkDE
Copy link

Contao: 4.13.49
NC: 2.1.0
PHP: 8.1.30

Seit dem Update auf 4.13.49 und 2.1.0 kann kein Formular mehr versendet werden. Nach Klick auf dem Button wird auf die Contao Standardfehlerseite weitergeleitet.

Folgende Meldungen stehen im Log nach dem Klick:
[2024-10-30T08:08:31.279555+01:00] request.INFO: Matched route "tl_page.2.root". {"route":"tl_page.2.root","route_parameters":{"_controller":"Contao\\FrontendIndex::renderPage","_scope":"frontend","_locale":"de","_format":"html","_canonical_route":"tl_page.2","parameters":"","pageModel":{"Contao\\PageModel":[]},"_route":"tl_page.2.root","_route_object":{"Symfony\\Component\\Routing\\Route":[]}},"request_uri":"https://www.unternehmerstammtisch.ruhr/","method":"POST"} [] [2024-10-30T08:08:31.291070+01:00] security.INFO: Populated the TokenStorage with an anonymous Token. [] [] [2024-10-30T08:08:31.420043+01:00] request.CRITICAL: Uncaught PHP Exception TypeError: "Terminal42\NotificationCenterBundle\Gateway\MailerGateway::embedImages(): Return value must be of type string, null returned" at /www/htdocs/w01dc578/CMS/vendor/terminal42/notification_center/src/Gateway/MailerGateway.php line 337 {"exception":"[object] (TypeError(code: 0): Terminal42\\NotificationCenterBundle\\Gateway\\MailerGateway::embedImages(): Return value must be of type string, null returned at /www/htdocs/w01dc578/CMS/vendor/terminal42/notification_center/src/Gateway/MailerGateway.php:337)"} []

Es ist eine normale Gastanmeldung mit Vorname, Nachname, Mailadresse etc. Alle Felder sind default, keine extra Templates.

@marcfunkDE
Copy link
Author

marcfunkDE commented Oct 30, 2024

Als Ergänzung:
Es wird vom Fehler in Zeile 337 gesprochen. Due Funktion "private function embedImages" fängt ab Zeile 328 an.
Es wird in den Benachrichtigungen tatsächlich ein Bild in der Signatur eingefügt.

Aber: Dieses wird mittels img src="data:image/jpeg;base64,..." eingebunden. Ich denke da stört sich das System dran?

[08:33] Ergänzung
Ja, es liegt am base64 Bild. Sobald ich das raus nehme, wird die Mail korrekt versendet.

@marcfunkDE marcfunkDE changed the title Mailversand nicht möglich Mailversand nicht möglich mit embedimage in Benachrichtigungen Oct 30, 2024
@Toflar Toflar self-assigned this Nov 4, 2024
@Toflar Toflar added the bug label Nov 4, 2024
@Toflar Toflar added this to the 2.1 milestone Nov 4, 2024
@Toflar
Copy link
Member

Toflar commented Nov 18, 2024

Im Test konnte ich das nicht nachstellen: 8c10cd4
Ich müsste das Ticket also schliessen, ausser du sagst mir, wie ich den Fehler nachstellen kann?

@marcfunkDE
Copy link
Author

Hallo Toflar! Dein HTML Code zum Image ist auch nicht korrekt. Der müsste so aussehen:

<html><body><p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red Dot"></p></body></html>

Bei dir fehlt der öffnende Image-Tag.

Ich hatte eine Base64 Image drin. Der Versand klappte nicht. Als ich es rausgenommen habe, ging der Versand sofort. Dann habe ich es testweise wieder eingebaut > wieder Versand nicht möglich.
Wenn es nicht nachstellbar ist, kann ich dir gerne auch einen Zugang zum Livesystem von uns geben, wo das Problem zu finden ist.

@Toflar
Copy link
Member

Toflar commented Nov 19, 2024

Ah, gutes Auge - in der Tat: Fixed: 3226a34
Aber gleiches Resultat. Also da muss m.E. was anderes falsch gelaufen sein?

@fritzmg
Copy link
Collaborator

fritzmg commented Nov 19, 2024

@marcfunkDE what are the exact reproduction steps? i.e. where exactly did you insert that image. Did you add it to the mail_default template for example?

@marcfunkDE
Copy link
Author

Hier ist die Seite:
https://www.unternehmerstammtisch.ruhr/mitgliedschaft/

Nach dem Ausfüllen kommt die Contao Seite "Es ist ein Fehler aufgetreten".
Log zeigt folgendes:

[2024-11-19T10:01:59.223905+01:00] request.INFO: Matched route "tl_page.5". {"route":"tl_page.5","route_parameters":{"_controller":"Contao\FrontendIndex::renderPage","_scope":"frontend","_locale":"de","_format":"html","_canonical_route":"tl_page.5","parameters":"","pageModel":{"Contao\PageModel":[]},"_route":"tl_page.5","_route_object":{"Contao\CoreBundle\Routing\Page\PageRoute":[]}},"request_uri":"https://www.unternehmerstammtisch.ruhr/mitgliedschaft/","method":"POST"} []
[2024-11-19T10:01:59.236372+01:00] security.INFO: Populated the TokenStorage with an anonymous Token. [] []
[2024-11-19T10:01:59.356310+01:00] request.CRITICAL: Uncaught PHP Exception TypeError: "Terminal42\NotificationCenterBundle\Gateway\MailerGateway::embedImages(): Return value must be of type string, null returned" at /www/htdocs/w01dc578/CMS/vendor/terminal42/notification_center/src/Gateway/MailerGateway.php line 337 {"exception":"[object] (TypeError(code: 0): Terminal42\NotificationCenterBundle\Gateway\MailerGateway::embedImages(): Return value must be of type string, null returned at /www/htdocs/w01dc578/CMS/vendor/terminal42/notification_center/src/Gateway/MailerGateway.php:337)"} []

stammtisch
Die Benachrichtigung enthält ein Image, welches mit Base64 eingebettet ist.

Es ist alles auf Standard eingestellt - ohne Anpassungen. Template ist das mail_default.
Sobald ich das Bild im Screenshot aus dem HTML Bereich entferne, funktioniert der Versand. Packe ich es wieder rein, kommt der Error ins Log.

@Toflar
Copy link
Member

Toflar commented Nov 19, 2024

Könntest du den exakten Inhalt von $html in embedImages() dumpen und hier anhängen?

@marcfunkDE
Copy link
Author

Kann ich. Da ich mit der Entwicklung in Contao aber nicht so bewandert bin, müsstest du mir schon sagen, wo genau ich die Ausgabe einfügen soll (Datei und ca. Zeile). :) Danke!

@Toflar
Copy link
Member

Toflar commented Nov 19, 2024

https://github.com/terminal42/contao-notification_center/blob/main/src/Gateway/MailerGateway.php#L330 da direkt ein dd($html); einfügen und dann im Debug-Modus (oben rechts im Backend aktivieren) abschicken.

@fritzmg
Copy link
Collaborator

fritzmg commented Nov 19, 2024

Die Benachrichtigung enthält ein Image, welches mit Base64 eingebettet ist.

Ah, so directly in the TinyMCE of the HTML text of the notification itself, not the mail_default template.

This is likely an issue with TinyMCE itself. @marcfunkDE post the source view of TinyMCE of your text.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants