Fremd/Core Plugin Email verhindern

Hallo zusammen,

ich möchte einen Emailversand in einem Plugin verhindern.

Da ich auf die Funktion keinen Zugriff habe, müsste ich es irgendwie anderst machen.

Kann ich mich in die Mail Funktion von Shopware einklinken und die Mails prüfen?

Und wenn es die Betroffene ist, diese Mail verhindern?

Andere Ideen?

 

danke & Gruß

ottscho

 

Hi,

es gibt da an einigen Stellen explizit Events für, bspw. beim Bestellabschluss. Wenn du soeins nutzen kannst, wäre das vermutlich am einfachsten.

Ansonsten gibt es noch das Event Enlight_Components_Mail_Send für jede Mail - das ist zwar nur ein notify-Event aber du hast auf das Mail-Objekt Zugriff, vll. findet sich da noch eine nützliche Funktion (Empfänger leeren?).

Schließlich und letztlich könnte man noch überlegen, das Mail-Objekt im Container mit einer eigenen Implementierung zu ersetzen, die die \Enlight_Components_Mail::send-Methode überschreibt und dir da ermöglicht, den Mailversand abzubrechen. Davon würde ich aber eher abraten, weil das relativ schwer kompatibel zu halten ist mit Plugins, die ähnliches machen. Alternativen (1) und (2) bringen dich ja vll. schon weiter. Vll. würde da auch allgemein ein notifyUnti-Event im Mailer Sinn machen, so dass man da explizit abbrechen kann 

Daniel

Danke Daniel, für deine ausführliche Antwort.

ich teste mal…

Explizit geht es um eure SEPA Integration und die Function sendSepaEmail.

ich habe irgendwo mal gelesen, wenn man in der Email Vorlage alle Felder leert, wird keine Mail versendet. Das werde ich ebenfalls mal Testen.