Bekommen Sie auch manchmal E-Mails mit Bildern, die separat geladen werden müssen, weil sie nicht oder nicht richtig an die E-Mail angehängt sind? Mir geht es so, und ich muss sagen, ich mag das nicht besonders. Natürlich gibt es den Kompromiss, dass die E-Mail-Größe zunimmt, wenn Bilder angehängt werden — aber wenn der Absender darauf achtet, dass Anzahl und Größe der Bilder klein bleiben, sollte die Gesamtgröße der E-Mail noch akzeptabel sein.
Ich habe nach einer Lösung dafür in Magento gesucht und festgestellt, dass es noch keine Erweiterung gibt, die diese Funktionalität bietet. Da ich diese für unsere Magentron.com-Website haben wollte, habe ich beschlossen, dies als neue Erweiterung namens EmailImages zu implementieren und über Magento Connect zu veröffentlichen: EmailImages.
Die Erweiterung ist ziemlich geradlinig: Wenn im HTML-Body der E-Mail Bild-URLs verwendet werden, lädt sie diese herunter, cachet sie (mit dem Magento-Cache und einem eigenen Cache-Typ, sodass Sie ihn einfach leeren können) und hängt sie an die E-Mail an, wobei der Content-Type auf multipart/related geändert wird. Die Konfigurationsoptionen unter System -> Konfiguration -> Erweitert -> System -> Email Images erlauben Ihnen:
- die Funktionalität ein-/auszuschalten
- die maximale Cache-Zeit für die heruntergeladenen Bilder zu definieren (in Sekunden)
- einen anderen regulären Ausdruck anzugeben
- einen anderen Index für den regulären Ausdruck anzugeben
Die Erweiterung überschreibt die Modelle für Newsletter und E-Mails (konkret: core/email, core/template, newsletter/template). Leider gibt es vermutlich viele andere Erweiterungen, die diese Modelle ebenfalls überschreiben (z. B. die unverzichtbare Erweiterung ASchroder_SMTPPro), bitte testen Sie diese Erweiterung daher nur in einer Nicht-Produktivumgebung, bevor Sie sie auf einem Live-Server installieren. Bitte beachten Sie, dass dies an der Architektur von Magento liegt. Wenn jemand eine bessere Lösung hat, sind wir ernsthaft daran interessiert, davon zu hören — lassen Sie es uns wissen!
Da wir der Meinung sind, dass Software-Qualität sehr wichtig ist, auch für ein Open-Source-Projekt, haben wir uns die Mühe gemacht, PHPUnit-Tests mit Ecomdev_PHPUnit zu schreiben. Wir haben 100% Code-Coverage erreicht, und auch wenn das nicht viel sagen mag, wurden zumindest alle Codezeilen in den Unit-Tests durchlaufen. Dadurch konnten wir bereits einige Probleme verhindern, die sonst in der veröffentlichten Version vorhanden gewesen wären.
Wir hoffen, dass Sie unsere Erweiterung mögen, und wenn Sie Kommentare oder Feedback haben, würden wir uns freuen, davon zu hören. Bitte nehmen Sie sich die Zeit, uns über die Kommentare oder die Kontaktseite zu erreichen.