E-Mail an auswählbare Empfänger versenden

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • felixpfeiffer
    AG CMS-Garden
    • 05.06.2009
    • 346

    #1

    E-Mail an auswählbare Empfänger versenden

    Hallo,

    ist es möglich einem Formular eine Selectbox mit mehreren Empfängernamen und Empfänger-e-Mailadressen zu übergeben, sodaß die Nachricht an den in dieser Box ausgewählten Empfänger gesendet wird?

    Gruß, Felix
    Felix Pfeiffer : Neue Medien
    Offizieller Contao Partner für den Raum Hannover

    Infos: http://www.felixpfeiffer.com
  • planepix
    AG Pressearbeit
    Community-Moderator
    Buchautor 'Contao für Webdesigner'
    • 05.06.2009
    • 6685

    #2
    Hallo Felix,

    so etwas meine ich gab es als Anfrage schon im alten Forum.

    Ich habe dazu gefunden:






    Spontan und ungetestet würde ich für die Werte des Select-Menüs die E-Mail-Adressen hinterlegen.
    ---------------------------------
    Beste Grüße planepix
    Contao für Webdesigner (Website), BlueSky: planepix
    weitzeldesign
    Contao-Sprechstunde
    Contao Schulungen: https://www.weitzeldesign.com/cms-co...chulungen.html
    Contao Jahrbuch: www.contao-jahrbuch.de
    Contao Agenturtag: www.contao-agenturtag.de
    Contao Stammtisch Stuttgart: www.contao-stammtisch-stuttgart.de

    Glücklich sind die, die den Wert erkennen – und wertschätzen.

    Kommentar

    • felixpfeiffer
      AG CMS-Garden
      • 05.06.2009
      • 346

      #3
      Hallo Thomas und Thomas,

      ich habe nun mal den Tipp mit dem Hook ausprobiert.
      Einer arbeitet mit einer Checkbox (das funktioniert), der andere mit einer Selectbox. Dies geht nicht. Der Wert der Selectbox wird einfach nciht übergeben. Komischerweise wird dieser auch in den Formular-Daten nicht angezeigt. Ich habe das sowohl mit einem eigenen Widget, welches auf den normalen Select Menüs basiert, als auch mit den Standard Select Menüs ausprobiert. In beiden Fällen wir der Wert nicht angezeigt.

      PHP-Code:
      class FPEfgSetRecipient extends Backend
      {
          public function setRecipient($arrSubmitted, $arrFiles, $intOldId, &$arrForm) // Diese Funktion geht nicht. $arrSubmitted['recipient'] ist der Wert eines Select Menüs und wird immer als leerer String angezeigt.
          {
              
              // Einschraenkung auf das Formular
              if ($arrSubmitted['FORM_SUBMIT'] == 'auto_form_5') // anzupassen, Wert siehe hidden-Input im Formular
              {
                  
                  $arrForm['formattedMailRecipient'] = $arrSubmitted['recipient'];
              }
       
              return $arrSubmitted;
       
          }
          
          public function sendMailToSender($arrSubmitted, $arrFiles, $intOldId, &$arrForm) // Diese Funktion wird korrekt ausgeführt $arrSubmitted['copyToSender'] ist eine Checkbox
          {
              
              // Einschraenkung auf das Formular
              if ($arrSubmitted['FORM_SUBMIT'] == 'auto_form_5' && $arrSubmitted['copyToSender'] != 1) // anzupassen, Wert siehe hidden-Input im Formular
              {
                  $arrForm['sendConfirmationMail'] = false;
              }
       
              return $arrSubmitted;
       
          }
      } 
      
      Vielleicht habt Ihr da noch eine Idee.

      Gruß, Felix
      Felix Pfeiffer : Neue Medien
      Offizieller Contao Partner für den Raum Hannover

      Infos: http://www.felixpfeiffer.com

      Kommentar

      • tom
        Contao-Fan
        • 16.06.2009
        • 385

        #4
        Hallo Felix,

        ein (Tipp-)Fehler beim Name des Select-Menüs ('recipient', kann übrigens auch anderst benannt werden) ist ausgeschlossen?
        Das Select-Menü verwendet als Options-'Werte' die E-Mail-Adressen und als Options-'Bezeichnungen' sonstwas(?)

        Kann man sich (bzw. ich mir) das mal "im Betrieb" ansehen?

        Schöne Grüße
        Thomas

        Kommentar

        • kos
          Contao-Fan
          • 22.06.2009
          • 888

          #5
          Hallo tom, hallo TL-Community,

          als TL-Neuling schreibe ich mal hier, weil ich glaube, dass meine Frage hier von Thema her richtig untergebracht ist.

          Ich bin dabei, eine Seite für einen Verein zu erstellen, bei der auf der Kontaktseite mehrere Mitglieder des Vereinsvorstands über Checkboxes [Feldname:Rcpt] als Empfänger der Mail ausgewählt werden können.

          Nach Absenden erfolgt Weiterleitung auf eine Bestätigungsseite.

          Als Mail soll versendet werden:
          1. mit "(EFG) Bestätigung per E-Mail versenden" : Mail an Absender
          2. mit "(EFG) Per E-Mail versenden" : Mails an ausgewählte Vorstandmitglieder

          Bei Bestätigungsseite, Bestätigungsmail sowie Vorstandsmail Verwendung von Insert-Tags der Form {{form::xyz}}.

          Natürlich funktioniert die Vorstandsmail nicht, wenn als Empfänger-Adresse im Abschnitt "(EFG) Per E-Mail versenden" {{form::Rcpt}} eingetragen wird, da dann ja die Bezeichnungen und nicht die Werte zurückgeliefert werden.

          Mache ich das dennoch, so wird die Bestätigungsseite angezeigt, die Bestätigungsmail geht raus, nur die Mails an die selektierten Vorstandmitglieder können natürlich mangels Adressen nicht ausgeliefert werden.

          Nach (hoffentlich richtigem) Einsatz der unter https://contao.org/board/message/76509.html im alten Forum beschriebenen Methode werden nun die Adressen ordnungsgemäß eingesetzt und alle Mails gehen auch raus, aber die Bestätigungsseite wird plötzlich nicht mehr angezeigt.

          Nachtrag:
          Nach Absenden des Formulars wird nicht auf die Bestätigungsseite weitergeleitet, in der Adressleiste des Browsers steht weiterhin die Kontktseite.
          Rufe ich die Bestätigungsseite durch entsprechende Adresseingabe im Browser direkt auf, so wird diese mit den aktuellen Angaben korrekt dargestellt.


          Hierzu würde ich mich über einen Tipp sehr freuen.

          Erlaubt mir noch eine Zusatzfrage:
          ist es möglich, im BE eine (Efg)-Bestätigungsmail zu entwerfen, den tatsächlichen Versand dieser Mail aber davon abhängig zu machen, dass der Absender z.B. eine Checkbox "Mail an mich" auswählt?


          Viele Grüße

          Karl
          Zuletzt geändert von kos; 28.06.2009, 11:36.

          Kommentar

          • tom
            Contao-Fan
            • 16.06.2009
            • 385

            #6
            Hallo Karl,
            Nach (hoffentlich richtigem) Einsatz der unter https://contao.org/board/message/76509.html im alten Forum beschriebenen Methode werden nun die Adressen ordnungsgemäß eingesetzt und alle Mails gehen auch raus, aber die Bestätigungsseite wird plötzlich nicht mehr angezeigt.

            Nachtrag:
            Nach Absenden des Formulars wird nicht auf die Bestätigungsseite weitergeleitet, in der Adressleiste des Browsers steht weiterhin die Kontktseite.
            Rufe ich die Bestätigungsseite durch entsprechende Adresseingabe im Browser direkt auf, so wird diese mit den aktuellen Angaben korrekt dargestellt.
            mein Verdacht wäre, dass ein kleiner Fehler in der callback-Funktion (die die "Vorstands-Mail-Empfänger" setzt/überschreibt) dazu führt, dass die weitere Verarbeitung abgebrochen wird und somit keine Weiterleitung zur "Bestätigungs-Seite" erfolgt.

            Wäre es möglich, mir das Script entweder zuzusenden, oder mir einen Zugang (idealerweise zum Backend und einen ftp-Zugang) einzurichten? Dann schaue ich mir die Umsetzung mal an.

            Erlaubt mir noch eine Zusatzfrage:
            ...gerne auch zwei oder mehr :-)
            ist es möglich, im BE eine (Efg)-Bestätigungsmail zu entwerfen, den tatsächlichen Versand dieser Mail aber davon abhängig zu machen, dass der Absender z.B. eine Checkbox "Mail an mich" auswählt?
            das wäre analog zum Prinzip des "Überschreibens der Empfänger-Adresse" ebenfalls möglich. Eine callback-Funktion, die den Wert der Checkbox prüft, und ggf. den Versand der Bestätigungsmail deaktiviert, in etwa:
            PHP-Code:
            public function checkConfirmationMail($arrSubmitted, $arrFiles, $intOldId, &$arrForm)
                {
             
                    // Einschraenkung auf das Formular
                    if ($arrSubmitted['FORM_SUBMIT'] == 'auto_form_15') // anzupassen, Wert siehe hidden-Input im Formular
                    {
                         // Prüfung des übermittelten Wertes der checkbox
                        if ( !isset($arrSubmitted['NAME_DER_CHECKBOX']) || $arrSubmitted['NAME_DER_CHECKBOX'] != 'WERT_DER_CHECKBOX' )
                        {
                            // deaktivieren der Option 'Bestätigungs-Mail versenden'
                            $arrForm['sendConfirmationMail'] = false;
                        }
            
                    return $arrSubmitted;
             
                } 
            
            Schöne Grüße
            Thomas

            Kommentar

            • kos
              Contao-Fan
              • 22.06.2009
              • 888

              #7
              Hallo Tom,

              vielen Dank für Deine Wochenendarbeit und die Bereitschaft, mir weiterzuhelfen.

              Zum Problem: ich habe noch ein wenig herungespielt und dabei festgestellt, dass auf die Bestätigungsseite dann weitergeleitet wird, wenn ich im Bereich (EFG) Formular-Daten speichern die Option Daten im Modul "Formular-Daten" speichern NICHT benutze.

              Eigentlich wäre die Speicherung für mich auch nicht so wichtig, aber dann ist ja auch, wie auch von Dir beschrieben, eine Verwendung von Insert-Tags nicht möglich und dies würde ich gerne tun.

              Einen Zugang zum Backend kann ich Dir leider nicht einrichten, da ich z. Zt. noch lokal unter XAMPP die Seite zu erstellen versuche, pack' hier aber mal den angepassten Code bei.

              Meine ScwpEfgFuncs.php :
              PHP-Code:
              <?php
              // $arrSubmitted enthalt die POST-Werte
              // $arrFiles ggf. Datei-Uploads
              // $intOldId die ID des bearbeiteten Datensatezs, im Falle von Frontend-Bearbeitung
              // $arrForm enthaelt die 'Formular-Konfiguration'
               class ScwpEfgFuncs extends Backend
              {
                  public function setKontaktMailEmpfaenger($arrSubmitted, $arrFiles, $intOldId, &$arrForm)
                  {
               
                      // Einschraenkung auf das Formular
                      if ($arrSubmitted['FORM_SUBMIT'] == 'auto_form_3') // anzupassen, Wert siehe hidden-Input im Formular
                      {
                          // überschreiben des Wertes von 'Empfänger-Adresse' mit dem Wert aus Fomularfeld 'E-Mail Adresse des Konferenzleiters'
                          $arrForm['formattedMailRecipient'] = $arrSubmitted['Rcpt'];
                      }
               
                      return $arrSubmitted;
               
                  }
              }
              ?>
              Meine Datei dcaconfig.php enthält z.Zt. nur die folgende Zeile

              PHP-Code:
              $GLOBALS['TL_HOOKS']['processEfgFormData']['callback_01'] = array('ScwpEfgFuncs', 'setKontaktMailEmpfaenger'); 
              
              Vielleicht kannst Du ja einen Fehler erkennen.

              Nochmals vielen Dank und schöne Grüße

              Karl

              PS: werde morgen versuchen, den neu gelieferten Code anzupassen.

              Kommentar

              • beatem
                Contao-Nutzer
                • 19.06.2009
                • 63

                #8
                Weiße Seite statt Weiterleitungsseite!

                Hallo,
                ich bin am verzweifeln, habe genau diese Anpassungen https://contao.org/board/message/76509.html durchgeführt. Bei mir auf dem Server läuft alles problemlos. Bei meinem Kunden auf dem Server liegt die identische Spiegelung und dort erscheint nach dem Absenden des Formulars eine weiße Seite und nicht die Weiterleitungsseite. Die Mails kommen alle richtig an und die Speicherung der Formulardaten funktioniert auch. Selbst wenn ich die Speicherung der Daten abstelle erscheint diese weiße Seite.
                Die Zugriffsrechte habe ich alle kontrolliert, sie stimmen mit meinen überein. Es gibt keine Fehlermeldungen ...woran kann das liegen? Über einen Tipp wäre ich sehr dankbar! Danke.
                Herzliche Grüße
                Beate
                Zuletzt geändert von beatem; 06.08.2009, 14:28.
                Herzliche Grüße von Beate | bmbwebdesign. | Contao-Partnerin

                Kommentar

                • do_while
                  Contao-Urgestein
                  • 15.06.2009
                  • 3699

                  #9
                  Hallo beatem,

                  weisse Seite bedeutet meist, dass die Fehlermeldungen in den TL Einstellungen abgeschaltet sind (sollen sie ja auch für Produktivbetrieb). Schalte mal die Fehlermeldungen kurz ein und dann kommen hoffentlich ein paar Klartextzeilen zur Anzeige, so dass wir Dir besser weiterhelfen können.
                  Gruß Hagen
                  Mein Contao Premium Partnerprofil
                  Link zum Stammtisch Berlin

                  Kommentar

                  • beatem
                    Contao-Nutzer
                    • 19.06.2009
                    • 63

                    #10
                    Hallo Hagen,
                    ich danke Dir!

                    Habe gerade nochmal die Fehleranzeige aktiviert - es wird keine Fehlermeldung ausgegeben und im Log steht auch kein Fehler:
                    Form "Kontakt" has been submitted by ....
                    Funktion: Form processFormData()

                    Laut des Softwareingenieurs der Firma ist auch im Server Log kein Fehler.

                    Herzliche Grüße
                    Beate
                    Herzliche Grüße von Beate | bmbwebdesign. | Contao-Partnerin

                    Kommentar

                    • beatem
                      Contao-Nutzer
                      • 19.06.2009
                      • 63

                      #11
                      Was ich noch vergessen habe....in der Adresszeile bleibt die URL des Formulares stehen.....nur dass die Seite dann weiß ist...bei einem Reload ist das leere Formular dann wieder da.
                      Herzliche Grüße von Beate | bmbwebdesign. | Contao-Partnerin

                      Kommentar

                      • beatem
                        Contao-Nutzer
                        • 19.06.2009
                        • 63

                        #12
                        Guten Morgen,
                        da die Seite in diesem Monat online gehen soll, macht mich dieser Fehler ziemlich nervös.
                        Ich habe jetzt, da es ja keine Fehlermeldungen gibt, einiges ausprobiert. Das Problem mit der weißen Seite tritt nicht nur bei diesem speziellen Fall auf, sondern immer dann wenn "Per E-Mail versenden (formatierter Text / HTML)" ausgewählt wurde. Bei Formularen bei denen "Per E-Mail versenden" gewählt wurde wird die Bestätigungsseite angezeigt.
                        Außerdem werden die Mails im Modul ecards nicht versendet.

                        Auf meinem Server bzw. bei meinem Provider funktionieren alle Funktionen. Ich habe extra noch einmal die Installation vom Kunden bei mir aufgspielt um zu überprüfen ob bei der Installation eventuell etwas schief gelaufen ist.

                        Was kann das sein???

                        Ich wäre über jeden Tipp sehr dankbar!
                        Herzliche Grüße von Beate | bmbwebdesign. | Contao-Partnerin

                        Kommentar

                        • do_while
                          Contao-Urgestein
                          • 15.06.2009
                          • 3699

                          #13
                          Hallo Beate,

                          der Unterschied ist, dass Du einmal über EFG versendest (geht nicht) und einmal über den Standard-Formulargenerator. Grundsätzlich funktioniert aber der Versand über EFG, den nutze ich häufig. Vielleicht ist etwas in den HTML-Templates falsch, so dass hierdurch ein Fehler auftritt? Versuchs mal mit einer leeren HTML-Vorlage, evtl. kommst Du so auf das Problem.
                          Gruß Hagen
                          Mein Contao Premium Partnerprofil
                          Link zum Stammtisch Berlin

                          Kommentar

                          • beatem
                            Contao-Nutzer
                            • 19.06.2009
                            • 63

                            #14
                            Hallo Hagen,
                            aber da spricht doch eigentlich dagegen dass bei mir alles geht....mit den exakt gleichen Templates.
                            Gibt es Servereinstellungen, die daran schuld sein können? Laut dem Typolight-check gibt es keine Einschränkungen beim Kunden.

                            Einen Unterschied zu meinen Einstellungen gibt es, ich nutze den Safe Mode Hack, der Kunde nicht. Kann es daran liegen?

                            Danke!
                            Herzliche Grüße von Beate | bmbwebdesign. | Contao-Partnerin

                            Kommentar

                            • do_while
                              Contao-Urgestein
                              • 15.06.2009
                              • 3699

                              #15
                              Hallo Beate,

                              Du hast schon Recht, es muss einen Unterschied geben, aber wenn man nicht auf die Ursache kommt, muss man mal ein paar Stellen ausprobieren, ob ein Einfluß zu erkennen ist, deshalb der Vorschlag mit dem leeren HTML.
                              Wenn das nichts verbessert, ist der Inhalt des HTMLs vermutlich nicht Schuld.

                              Der SMH kann damit eigentlich nichts zu tun haben, aber werden die Mails per PHP gesendet oder hast Du in den Einstellungen den SMTP-Versand aktiviert?
                              Den habe ich in Zusammenhang mit EFG noch nie aktiviert.
                              Gruß Hagen
                              Mein Contao Premium Partnerprofil
                              Link zum Stammtisch Berlin

                              Kommentar

                              Lädt...