Ergebnis 1 bis 36 von 36

Thema: Empfängeradresse vor senden ändern

  1. #1
    Contao-Nutzer
    Registriert seit
    25.11.2013.
    Beiträge
    34

    Standard Empfängeradresse vor senden ändern

    Hallo liebe Contao-Community,

    ein Kunde möchte ein Newslettersystem nutzen. Hierzu muss eine neue Empfängeradresse aus der eingegebenen Newsletter-E-Mailadresse erstellt und dann an diese eine Mail versendet werden:

    Beispiel:

    Kunde füllt ein kurzes Formular auf der Webseite aus in welche er seine E-Mail-Adresse eingibt:

    Dann muss diese E-Mail umgeschrieben werden mit:

    sprintf("newsletter-subscribe-%s@test.de",strtr($email,"@","="));

    Danach soll das Formular an diese E-Mail-Adresse gesendet werden.

    Wo kann ich diesen Zwischenschritt vornehmen, und wie?

    Vielen Dank für eure Hilfe im voraus und viele Grüße
    Jochen

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

    Standard

    Du könntest den prepareFormData Hook dafür verwenden, welcher ausgeführt wird, bevor Contao die E-Mail verschickt. Dort änderst du dynamisch die E-Mail Adresse mit
    PHP-Code:
    $form->recipient sprintf("newsletter-subscribe-%s@test.de",strtr($arrSubmitted['email'],"@","=")); 

  3. #3
    Contao-Nutzer
    Registriert seit
    25.11.2013.
    Beiträge
    34

    Standard

    OK, super, leider habe ich mit Hooks noch nichts gemacht ...

    Diese muss ich in die in der config.php anlegen?

    Ich habe da jetzt mal reingelesen, aber ehrlich gesagt wirklich verstehen tu ich's nicht

    Hast du noch einen kleinen Tip? Ansonsten klingt das ja ziemlich logisch, dann muss ich ja nur ne abfrage reinmachen, ob das Feld gesetzt wurde und wenn nicht läuft alles normal, sprich in allen anderen Fomularen, oder?

    Danke schonmal für die Hilfe

    Viele Grüße
    Jochen

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

  5. #5
    Contao-Nutzer
    Registriert seit
    25.11.2013.
    Beiträge
    34

    Standard

    Ach wie ich solche Antworten liebe

    Perfekt, das hilft mir echt weiter, danke!

    Naja, egal, dann halt nicht, schade

    Und ja ich weiss, selber lernen ist besser als fragen, schon klar, nur für was braucht man dann ein Forum?

    Vielleicht fühlt sich ja noch einer berufen, mir doch noch einen kleinen Tip zu geben, wäre echt lieb, danke und viele Grüße
    Jochen

  6. #6
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.714
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Toraldo Beitrag anzeigen
    Hallo liebe Contao-Community,

    ein Kunde möchte ein Newslettersystem nutzen.....

    ...
    Und ja ich weiss, selber lernen ist besser als fragen, schon klar, nur für was braucht man dann ein Forum?

    Vielleicht fühlt sich ja noch einer berufen, mir doch noch einen kleinen Tip zu geben, wäre echt lieb, danke und viele Grüße
    Jochen
    der entscheidende Tipp hat Spooky Dir geliefert - das war der Link zu https://docs.contao.org/dev/referenc...epareFormData/

    Wenn Du erwartest, dass Dir jemand eine copyfertige Datei erstellt, dann erwartest Du sicher zu viel von einem Forum.

    Wenn Du das technisch nicht kannst, was ja kein Problem ist, kannst Du immer noch hier die Anfrage für Hilfe posten: https://community.contao.org/de/foru...Auftr%C3%A4ge)
    Die Umsetzung kannst Du sicher bei Deinem Kunden mit auf die Rechnung setzen ;-)

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

    Standard

    Zitat Zitat von Toraldo Beitrag anzeigen
    nur für was braucht man dann ein Forum?
    Um Fragen zu stellen natürlich.

    Was genau möchtest du denn nun wissen? Bzw. was fehlt dir?

  8. #8
    Contao-Nutzer
    Registriert seit
    25.11.2013.
    Beiträge
    34

    Standard

    Zitat Zitat von Toraldo Beitrag anzeigen
    OK, super, leider habe ich mit Hooks noch nichts gemacht ...

    Diese muss ich in die in der config.php anlegen?

    Ich habe da jetzt mal reingelesen, aber ehrlich gesagt wirklich verstehen tu ich's nicht

    Hast du noch einen kleinen Tip? Ansonsten klingt das ja ziemlich logisch, dann muss ich ja nur ne Abfrage reinmachen, ob das Feld gesetzt wurde und wenn nicht läuft alles normal, sprich in allen anderen Fomularen, oder?

    Danke schonmal für die Hilfe

    Viele Grüße
    Jochen
    Cool wäre eine einfache Erklärung wo ich was anlegen müsste

    Aber wenn das schon so viel Arbeit ist, das man dafür Geld bezahlen soll, dann gerne auch ein Angebot machen, was man dafür will, danke.

    Viele Grüße
    Jochen

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

    Standard

    Zitat Zitat von Toraldo Beitrag anzeigen
    Cool wäre eine einfache Erklärung wo ich was anlegen müsste
    In dem Link, den ich gepostet habe, ist ein Beispiel wo auch steht wo du die Datei der PHP Klasse anlegen musst.

  10. #10
    Contao-Nutzer
    Registriert seit
    18.06.2017.
    Beiträge
    219

    Standard

    Hallo,

    Nur am Rande: Das ändern der Absenderemail kann unter Umständen auch dazu führen, dass die EMail als SPAM erkannt wird. Stichwort: SPF
    Solange Sender u. Empfängerdomain die gleiche sind solange die Ursprüngliche und neue Adresse aber die gleiche Domain sind, sollte es aber kein Problem sein

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

    Standard

    Zitat Zitat von darkness Beitrag anzeigen
    Hallo,

    Nur am Rande: Das ändern der Absenderemail kann unter Umständen auch dazu führen, dass die EMail als SPAM erkannt wird. Stichwort: SPF
    Solange Sender u. Empfängerdomain die gleiche sind solange die Ursprüngliche und neue Adresse aber die gleiche Domain sind, sollte es aber kein Problem sein
    Es geht um die Änderung der Empfängeradresse.

  12. #12
    Contao-Nutzer
    Registriert seit
    25.11.2013.
    Beiträge
    34

    Standard

    Ja, zumindest wenn es dann irgendwann läuft

  13. #13
    Contao-Nutzer
    Registriert seit
    18.06.2017.
    Beiträge
    219

    Standard

    Ups, sorry Falsch gelesen.

  14. #14
    Contao-Nutzer
    Registriert seit
    25.11.2013.
    Beiträge
    34

    Standard

    Nur falls sich jemand anders berufen fühlt, ich bekomme es nicht hin. Und jetzt bitte nicht wieder schreiben, das alles in dem Link steht, das hilft mir sorry nicht weiter, danke.

  15. #15
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.942

    Standard

    Zitat Zitat von Toraldo Beitrag anzeigen
    Nur falls sich jemand anders berufen fühlt, ich bekomme es nicht hin. Und jetzt bitte nicht wieder schreiben, das alles in dem Link steht, das hilft mir sorry nicht weiter, danke.
    Und wenn Du uns verrätst, wo genau Du nicht weiter kommst, könnten wir Dir vielleicht helfen und es würde uns helfen, ggf. die Dokumentation zu verbessern.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  16. #16
    Contao-Nutzer
    Registriert seit
    18.06.2017.
    Beiträge
    219

    Standard

    Dann schreib doch was du nicht hin bekommst bzw was du bisher gemacht hast. Ansonst wäre es auch nur Glaskugellesen von denen die dir helfen wollen.

  17. #17
    Contao-Nutzer
    Registriert seit
    25.11.2013.
    Beiträge
    34

    Standard

    Als allererstes, ich will hier nicht nerven oder Leute ärgern!

    Ich denke einfach, dass die ganze Sache zu tief in die Programmierung reingeht.

    PHP-Code:
    // src/EventListener/PrepareFormDataListener.php
    namespace App\EventListener;

    use 
    Contao\CoreBundle\ServiceAnnotation\Hook;
    use 
    Contao\Form;

    /**
     * @Hook("prepareFormData")
     */
    class PrepareFormDataListener
    {
        public function 
    __invoke(array &$submittedData, array $labels, array $fieldsForm $form): void
        
    {
            
    // This calculates a deadline from a given timestamp
            // and stores it as deadline in $submittedData.
            
    $submittedData['deadline'] = strtotime('+1 hour'$submittedData['tstamp']);
        }

    Das ist das Beispiel aus der Doku, hier steht jetzt nicht wirklich an welcher Stelle welche Dateien erstellt werden müssen o.ä.

    Das gleiche bei Getting Started

    PHP-Code:
    // src/EventListener/ParseArticlesListener.php
    namespace App\EventListener;

    use 
    Contao\CoreBundle\ServiceAnnotation\Hook;
    use 
    Contao\FrontendTemplate;
    use 
    Contao\Module;
    use 
    Contao\UserModel;

    /**
     * @Hook("parseArticles")
     */
    class ParseArticlesListener
    {
        public function 
    __invoke(FrontendTemplate $template, array $newsEntryModule $module): void
        
    {
            
    // Fetch the news entry's author
            
    $author UserModel::findByPk($newsEntry['author']);

            
    // Override the "author" variable of the template with the row information of the author
            
    $template->author $author->row();
        }

    Ich denke das Ganze ist für Leute bestimmt super geschrieben, die sich damit auskennen, deswegen ziehe ich meine Frage zurück.
    Aber zum Beispiel wäre es doch super wenn da stehen würde, wenn das überhaupt so stimmt:

    config.php anlegen unter /config
    test.php mit Klasse einfügen unter ...

    Wenn das jetzt schon der Fall ist und ich es einfach nicht finde bzw. mich einfach nicht gut genug auskenne, dann bin ich für einen Link zum Beispiel zu einem Tutorial dankbar. Wenn jetzt aber wieder der gleiche Link kommt mit der Aussage, da steht alles drin, dann bitte sparen, danke.

    Nicht falsch verstehen, wenn man sich super auskennt ist alles einfach und ich erwarte auch nicht, dass mal eben so meine Probleme gelöst werden. Jeder hat seine eigenen Aufgaben zu stemmen, das weiss ich und bin dankbar für Hilfe, wenn meine Frage zu weit geht oder unlogisch ist, dann einfach ignorieren.

    Evtl. kann man ja einfach bei einem Seitenaufruf nochmal eine Mail schicken via php? Dann würde ich einfach die Mail nach dem Formularversand dort umschreiben und nochmal senden, gerne auch hier ein Link zu einem Tutorial o.ä. Danke.
    Geändert von Spooky (27.10.2020 um 10:33 Uhr) Grund: added [php] tags

  18. #18
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.942

    Standard

    Zitat Zitat von Toraldo Beitrag anzeigen
    [...]
    Das ist das Beispiel aus der Doku, hier steht jetzt nicht wirklich an welcher Stelle welche Dateien erstellt werden müssen o.ä.
    In der Ersten Zeile des Beispielcodes steht, wie die Datei heißen soll und wo sie abgespeichert werden soll.

    PHP-Code:
    // src/EventListener/PrepareFormDataListener.php 
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

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

    Standard

    Moderation: wenn du Code postest, bitte auch entsprechenden BB-Code verwenden. Ich habe den Post editiert und die fehlenden [php] Tags hinzugefügt.

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

    Standard

    Du solltest außerdem angeben, welche Contao Version du verwendest. Entweder erwähne die genaue Contao Version in deinem originalen Post, oder setze dort zumindest das entsprechende Präfix.

  21. #21
    Contao-Nutzer
    Registriert seit
    18.06.2017.
    Beiträge
    219

    Standard

    Zitat Zitat von Toraldo Beitrag anzeigen
    Als allererstes, ich will hier nicht nerven oder Leute ärgern!
    Ich glaube das schaffst du nicht. Aus eigener Erfahrung: Die meisten hier haben eine Engelsgedult und sind bereit zu helfen, wenn bereit ist zu lernen

    Was wo hin gehört steht aber genau unter dem breits genannten Link bzw. etwas genauer: https://docs.contao.org/dev/getting-...g-development/

    Und zwar:

    When customizing your web application, the following files and folders will usually be of interest. Some of those will need to be created manually:

    File/Directory Explanation
    config/ Application configuration.
    contao/ Contao configuration and translations.
    src/ Your own PHP code: controllers, event listeners for hooks and other services.
    templates/ Templates for your own modules and elements, or customized existing templates.
    composer.json Add dependencies, customize autoloading if required.

  22. #22
    Contao-Nutzer
    Registriert seit
    25.11.2013.
    Beiträge
    34

    Standard

    Na dann,

    also ich habe jetzt folgendes gemacht:

    /src/EventListener angelegt
    PrepareFormDataListener.php Datei erstellt

    Code:
    <?php
    
    namespace App\EventListener;
    
    use Contao\CoreBundle\ServiceAnnotation\Hook;
    use Contao\Form;
    
    /**
     * @Hook("prepareFormData")
     */
    class PrepareFormDataListener
    {
        public function __invoke(array &$submittedData, array $labels, array $fields, Form $form): void
        {
            //$form->recipient = sprintf("newsletter-subscribe-%s@a-csi.de",strtr($arrSubmitted['email'],"@","="));  
            $form->fromName = "Tester"; 
        }
    }
    
    ?>
    Einfach mal zum testen, habe ich was vergessen, weil Tester wird nicht in die Mail geschrieben.
    Cache habe ich geleert.
    Contao 4.9.8

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

    Standard

    Wie hast du Contao installiert, bzw. wie verwaltest du Contao? Über den Contao Manager oder über die Konsole?

  24. #24
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.942

    Standard

    Zitat Zitat von Toraldo Beitrag anzeigen
    Code:
            $form->fromName = "Tester";
    Einfach mal zum testen, habe ich was vergessen, weil Tester wird nicht in die Mail geschrieben.
    Müsste die Änderung nicht an den Daten in $submittedData gemacht werden?
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

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

    Standard

    PHP-Code:
    $form->fromName 
    hätte generell keine Auswirkung. Der Absendername und die Absender E-Mail Adresse werden aus der in den System Einstellungen eingetragenen Administrator-E-Mail-Adresse ermittelt.

  26. #26
    Contao-Nutzer
    Registriert seit
    25.11.2013.
    Beiträge
    34

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Wie hast du Contao installiert, bzw. wie verwaltest du Contao? Über den Contao Manager oder über die Konsole?
    Contao Manager

    OK, dann funktioniert das $form->fromName nicht, aber alles andere stimmt so?
    Muss ansonsten nichts mehr gemacht werden?

    Weil das funktioniert nicht:

    Code:
    <?php
    
    namespace App\EventListener;
    
    use Contao\CoreBundle\ServiceAnnotation\Hook;
    use Contao\Form;
    
    /**
     * @Hook("prepareFormData")
     */
    class PrepareFormDataListener
    {
        public function __invoke(array &$submittedData, array $labels, array $fields, Form $form): void
        {
            $form->recipient = sprintf("newsletter-subscribe-%s@xxx.de",strtr($arrSubmitted['email'],"@","="));  
        }
    }
    
    ?>

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

    Standard

    Zitat Zitat von Toraldo Beitrag anzeigen
    Contao Manager
    Lasse über den Contao Manager nochmal den Autoloader neu aufbauen und die Abhängigkeiten nochmals installieren, zur Sicherheit.



    Zitat Zitat von Toraldo Beitrag anzeigen
    OK, dann funktioniert das $form->fromName nicht, aber alles andere stimmt so?
    Alles andere stimmt soweit. Konvention nach PSR-12 wäre aber den PHP Closing Tag (?>) nicht zu verwenden. Siehe dazu https://www.php-fig.org/psr/psr-12/#22-files

  28. #28
    Contao-Nutzer
    Registriert seit
    25.11.2013.
    Beiträge
    34

    Standard

    OK, jetzt habe ich folgendes gemacht

    Code:
    <?php
    
    namespace App\EventListener;
    
    use Contao\CoreBundle\ServiceAnnotation\Hook;
    use Contao\Form;
    
    /**
     * @Hook("prepareFormData")
     */
    class PrepareFormDataListener
    {
        public function __invoke(array &$submittedData, array $labels, array $fields, Form $form): void
        {
            $form->recipient = "test@xxx.de";
        }
    }
    leider kommt die Mail auch nach Composer Class Loader aktualisieren und Cache leeren usw. nicht an

    irgendeine Stelle wo ich noch was machen muss, was ist mit der config.php, muss da nichts gemacht werden?

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

    Standard

    Über die Konsole könntest du mit
    Code:
    vendor/bin/contao-console debug:container PrepareFormDataListener
    überprüfen, ob dein Service korrekt registriert und getagged ist.

  30. #30
    Contao-Nutzer
    Registriert seit
    25.11.2013.
    Beiträge
    34

    Standard

    geht das auch ohne Konsole?

  31. #31
    Contao-Nutzer
    Registriert seit
    25.11.2013.
    Beiträge
    34

    Standard

    Hallo und vielen Dank!

    Jetzt klappt alles so wie es soll, vielen Dank für eure Geduld, bzw. deine Spooky!

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

    Standard

    Kein Problem . Was hat noch gefehlt?

  33. #33
    Contao-Nutzer
    Registriert seit
    25.11.2013.
    Beiträge
    34

    Standard

    Ganz ehrlich, keine Ahnung

    Tatsächlich habe ich noch ein- zweimal verzweifelt den Cache geleert, dann ging es!

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

    Standard

    Noch ein Hinweis: mit dem Code den du gepostet hast setzt du die Empfängeradresse nun für jedes Formular des Formulargenerators. Falls du das nur für bestimmte Formulare haben möchtest, musst du hier natürlich noch zusätzliche Maßnahmen treffen.

  35. #35
    Contao-Nutzer
    Registriert seit
    25.11.2013.
    Beiträge
    34

    Standard

    Das habe ich so gelöst:

    Code:
    public function __invoke(array &$submittedData, array $labels, array $fields, Form $form): void
        {
            
            if($submittedData['emailNewsletter']!=''){
                $form->recipient = sprintf("newsletter-subscribe-%s@xxx.de",strtr($submittedData['emailNewsletter'],"@","="));  
            }          
        }
    Müsste eigentlich funktionieren, oder?

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

    Standard

    Ja, wird reichen

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
  •