Info an Admin bei Abonnent-Abmeldung?

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • ipunkt
    Contao-Nutzer
    • 28.05.2010
    • 37

    #1

    Info an Admin bei Abonnent-Abmeldung?

    Hallo zusammen,

    besteht die Möglichkeit, dass der Admin eine Info bekommt - entweder per mail oder im Backend - wenn sich ein Abonnent aus dem Verteiler austrägt?

    Danke im Voraus!
    Ingo
  • tril
    Contao-Urgestein
    • 07.01.2010
    • 2939

    #2
    Wie stellst du dir das genau vor?
    Ich mein die E-Mail darf aus Datenschutzgründen nur für die Dauer des Abonnements gespeichert werden.

    MfG Tristan

    Kommentar

    • Gnarf
      Contao-Nutzer
      • 13.05.2011
      • 15

      #3
      Hallo,

      ich wärm das mal schnell auf... weil ich die Info ganz interessant finde.
      Den Datenschutz-Aspekt verstehe ich.

      Interessant wäre aber auch aus meiner Sicht generell, dass sich jemand abgemeldet hat (auch ohne die e-mail).
      Z.b. durch einen Eintrag im System-Log bzw. wäre das ja auch als mail an den Admin möglich.
      Ähnlich dem Eintrag, beim abonnieren. "Deletet recipient from [Newsletter-Name]".

      Wäre das möglich?

      lg
      Gnarf

      Kommentar

      • tril
        Contao-Urgestein
        • 07.01.2010
        • 2939

        #4
        Mit dem avisotaUnsubscribe Hook kannst du Abmeldungen "beobachten" und entsprechende Aktionen ausführen.

        config.php
        PHP-Code:
        $GLOBALS['TL_HOOKS']['avisotaUnsubscribe'][] = array('MyClass', 'hookAvisotaUnsubscribe'); 
        
        MyClass.php
        PHP-Code:
        class MyClass
        {
            public function hookAvisotaUnsubscribe($arrRecipient)
            {
                // do somethink with $arrRecipient
            }
        } 
        

        Kommentar

        • NoName26
          Contao-Fan
          • 13.08.2010
          • 304

          #5
          Da die Frage nach einer Benachrichtigungs-Mail hier ja bereits mehrfach gestellt wurde, aber noch in keinem der Threads eine Lösung steht, hier mal schnell der Hook:

          /system/modules/unsubscribenotifier/config/config.php
          PHP-Code:
          <?php if (!defined('TL_ROOT')) die('You can not access this file directly!');
          
          $GLOBALS['TL_HOOKS']['avisotaUnsubscribe'][] = array('UnsubscribeNotifier', 'hookAvisotaUnsubscribe');
          
          ?>

          /system/modules/unsubscribenotifier/UnsubscribeNotifier.php
          PHP-Code:
          <?php if (!defined('TL_ROOT')) die('You can not access this file directly!');
          
          class UnsubscribeNotifier
          {
              public function hookAvisotaUnsubscribe($arrRecipient)
              {
                  $objEmail = new Email();
                  $objEmail->subject = "Abmeldung: ". $arrRecipient;
                  $objEmail->from ="absender@email.com";
                  $objEmail->fromName ="Newsletter | domain.com";
          
                  $text .= "Der Nutzer mit der E-Mail-Adresse " .$arrRecipient . " hat sich vom Newsletter abgemeldet.";
          
                  $objEmail->text = $text;
                  $objEmail->sendTo( 'empfaenger@email.com' );
              }
          }
          
          ?>
          Viele Grüße, TN

          Kommentar

          • herbert
            Contao-Nutzer
            • 06.09.2012
            • 92

            #6
            unsubscribenotifier einfügen.

            Hallo,

            ich hab versucht den Code in php. Dateien mit den entsprechenden Ordnern anzulegen. Übertrage ich den Ordner unsubscribenotifier in system modules per ftp, so werden alle umlaute der gesammten Seite falsch dargestellt und beim Absenden der Kündigung bekomme ich eine weiße Seite. Wie muss ich da genauer vorgehen? Wie muss die Ordnerstruktur genau aussehen?

            Kommentar

            • clauer
              Contao-Nutzer
              • 18.12.2010
              • 49

              #7
              Notify an Admin

              Hi,

              herzlichen Dank für die Anleitung, das funktioniert super! Genau das, was ich wollte.

              Allerdings werden in der Benachrichtigungsmail die Daten des Absenders nicht angezeigt. Die email Adresse des Absenders wird mit

              arrRecipient['email']

              angesprochen, oder welche Angaben man auch immer von ihm sehen möchte.

              Christian

              Kommentar

              • lucina
                Administratorin
                • 19.06.2009
                • 7544

                #8
                Vermutlich, weil der ja bereits gelöscht wurde. Man müsste ihn vorher also nur deaktivieren. Tristan?
                Contao in Kiel: kikmedia webdevelopment | Contao-Partnerin | Contao Usergroup Kiel | github | Contao-Community-Alliance | MetaModels-Team

                Kommentar

                • tril
                  Contao-Urgestein
                  • 07.01.2010
                  • 2939

                  #9
                  Nein, er wird erst nach dem Hook gelöscht. Schau dir mal mit var_dump($arrRecipient) an, was in dem Array drin steht, eigentlich sollten dort der gesamte Datensatz drin stehen.

                  Kommentar

                  • tril
                    Contao-Urgestein
                    • 07.01.2010
                    • 2939

                    #10
                    Äh, nee sry der Datensatz steht nicht drin, aber alle Felder aus dem Formular sollten drin stehen.

                    Kommentar

                    • mamboo
                      Contao-Fan
                      • 04.03.2010
                      • 334

                      #11
                      Info an Admin funktioniert bei Online-Abmeldung nicht

                      Hallo

                      Die Mailrückmeldung an den Newsletter Admin funktioniert mit diesem Hook nur mit dem Abmeldelink in der Anmeldemail. Möchte ich mich auf der Website abmelden, wird zwar mein Abonnement gelöscht aber in der Mailrückmeldung an den Admin ist keine "von" Adresse, im Betreff und im Mailbody steht an Stelle der ausgetragenen Mailadresse nur "array".
                      Da ich denke, dass ein Abonnent die Anmeldemail nicht ewig aufbewahrt, wird er sich wohl später mal online vom Newsletter abmelden wollen und da müsste die Rückmeldung an den Admin auch funtionieren.

                      Mail:
                      Betreff: Abmeldung: Array
                      Mailbody: Der Abonnent mit der E-Mail-Adresse Array hat sich vom High Adventure Newsletter abgemeldet.
                      Inhalt der Class-Datei:
                      PHP-Code:
                      class UnsubscribeNotifier
                      {
                          public function hookAvisotaUnsubscribe($arrRecipient)
                          {
                              $objEmail = new Email();
                              $objEmail->subject = "Abmeldung: ". $arrRecipient;
                              $objEmail->from = $arrRecipient;
                              $objEmail->fromName = "Newsletter domain.ch";
                      
                              $text .= "Der Abonnent mit der E-Mail-Adresse " .$arrRecipient . " hat sich vom Newsletter abgemeldet.";
                      
                              $objEmail->text = $text;
                              $objEmail->sendTo( 'empfaenger@mail.ch' );
                          }
                      }
                      
                      ?> 
                      
                      Bitte kann mir da jemand weiter helfen.
                      Vielen Dank schon mal.
                      Zuletzt geändert von mamboo; 29.10.2013, 19:22.
                      Grüsse mamboo

                      Kommentar

                      • fiedsch
                        Contao-Urgestein
                        • 09.07.2009
                        • 3074

                        #12
                        Wenn die Variable schon $arrRecipient heißt, wird es wohl auch ein Array sein ;-)

                        Daher bekommst Du bei Deinen Ausgaben das Wort Array.

                        Du musst nicht den gesamten Array $arrRecipient ausgeben, sondern nur eine Kponente davon. Wie die heißt: keine Ahnung. Als Schuss in's Bluse würde ich mal $arrRecipient['email'] probieren
                        Contao-Community-Treff Bayern: http://www.contao-bayern.de

                        Kommentar

                        • mamboo
                          Contao-Fan
                          • 04.03.2010
                          • 334

                          #13
                          Hallo fiedsch

                          Ja, das wäre die Komponente. Damit hab ich auch schon rumprobiert aber sobald ich das ändere, funktioniert Rückmeldung auf die Mailabmeldung nicht mehr.
                          Schreibe ich sie wie folgt um:

                          PHP-Code:
                          class UnsubscribeNotifier
                          {
                              public function hookAvisotaUnsubscribe($arrRecipient)
                              {
                                  $objEmail = new Email();
                                  $objEmail->subject = "Abmeldung: ". $arrRecipient['email'];
                                  $objEmail->from = $arrRecipient['email'];
                                  $objEmail->fromName = "Newsletter domain.ch";
                          
                                  $text .= "Der Abonnent mit der E-Mail-Adresse " .$arrRecipient['email'] . " hat sich vom Newsletter abgemeldet.";
                          
                                  $objEmail->text = $text;
                                  $objEmail->sendTo( 'empfaenger@mail.ch' );
                              }
                          }
                          
                          ?> 
                          
                          erscheint die folgende Fehlermeldung und das Abo wird nicht gelöscht:

                          Fatal error: Uncaught exception Swift_RfcComplianceException with message Address in mailbox given [u] does not comply with RFC 2822, 3.6.2. thrown in D:\www\www351\plugins\swiftmailer\classes\Swift\Mi me\Headers\MailboxHeader.php on line 308

                          #0 D:\www\www351\plugins\swiftmailer\classes\Swift\Mi me\Headers\MailboxHeader.php(238): Swift_Mime_Headers_MailboxHeader->_assertValidAddress('u')
                          #1 D:\www\www351\plugins\swiftmailer\classes\Swift\Mi me\Headers\MailboxHeader.php(96): Swift_Mime_Headers_MailboxHeader->normalizeMailboxes(Array)
                          #2 D:\www\www351\plugins\swiftmailer\classes\Swift\Mi me\Headers\MailboxHeader.php(60): Swift_Mime_Headers_MailboxHeader->setNameAddresses(Array)
                          #3 D:\www\www351\plugins\swiftmailer\classes\Swift\Mi me\SimpleMimeEntity.php(573): Swift_Mime_Headers_MailboxHeader->setFieldBodyModel(Array)
                          #4 D:\www\www351\plugins\swiftmailer\classes\Swift\Mi me\SimpleMessage.php(195): Swift_Mime_SimpleMimeEntity->_setHeaderFieldModel('From', Array)
                          #5 D:\www\www351\system\libraries\Email.php(467): Swift_Mime_SimpleMessage->setFrom(Array)
                          #6 D:\www\www351\system\modules\AvisotaCustom\Unsubsc ribeNotifier.php(15): Email->sendTo('ursina.huwiler@...')
                          #7 D:\www\www351\system\modules\Avisota\ModuleAvisota Subscription.php(468): UnsubscribeNotifier->hookAvisotaUnsubscribe('ursina.huwiler@...', Array)
                          #8 D:\www\www351\system\modules\Avisota\ModuleAvisota Subscription.php(773): ModuleAvisotaSubscription->unsubscribetoken()
                          #9 D:\www\www351\system\modules\frontend\Module.php(1 40): ModuleAvisotaSubscription->compile()
                          #10 D:\www\www351\system\modules\Avisota\ModuleAvisota Subscription.php(548): Module->generate()
                          #11 D:\www\www351\system\modules\frontend\ContentModul e.php(72): ModuleAvisotaSubscription->generate()
                          #12 D:\www\www351\system\libraries\Controller.php(489) : ContentModule->generate()
                          #13 D:\www\www351\system\modules\frontend\ModuleArticl e.php(193): Controller->getContentElement('1743')
                          #14 D:\www\www351\system\modules\frontend\Module.php(1 40): ModuleArticle->compile()
                          #15 D:\www\www351\system\modules\frontend\ModuleArticl e.php(71): Module->generate()
                          #16 D:\www\www351\system\libraries\Controller.php(421) : ModuleArticle->generate(false)
                          #17 D:\www\www351\system\libraries\Controller.php(294) : Controller->getArticle('401', false, false, 'main')
                          #18 D:\www\www351\system\modules\frontend\PageRegular. php(100): Controller->getFrontendModule('0', 'main')
                          #19 D:\www\www351\index.php(200): PageRegular->generate(Object(DB_Mysql_Result))
                          #20 D:\www\www351\index.php(319): Index->run()
                          #21 {main}
                          Schreibe ich nur das eine oder andere um, werden die Rückmeldemails fehlerhaft oder das Abo wird auch gar nicht gelöscht.

                          Was mach ich falsch?
                          Grüsse mamboo

                          Kommentar

                          • fiedsch
                            Contao-Urgestein
                            • 09.07.2009
                            • 3074

                            #14
                            Info an Admin bei Abonnent-Abmeldung?

                            Wenn du in Deinem Code

                            Code:
                            $objEmail->from = $arrRecipient;
                            schreibst, ist die Absendeadresse "array". Das ist zwar sinnfrei, aber aus Sicht von SwiftMailer eine gültige E-Mail-Adresse.

                            Code:
                            $objEmail->from = $arrRecipient['email'];
                            stört SwiftMailer als ungültige E-Mail-Adresse -- daher die Fehlermeldung und der Skriptabbruch.

                            Ich würde jetzt mal probieren, als Absender die Admin-E-Mail-Adresse einzusetzen (die Mail kommt ja auch nicht wirklich von dem Member) und im Text der Mail den $arrRecipient Array auszugeben, damit Du siehst, wie der genau gegliedert ist und was der Grund für den Fehler ist.

                            Code:
                            ob_start();
                            print_r($arrRecipient);
                            $buffer = ob_get_contents();
                            ob_end_clean();
                            // und jetzt $buffer dem Text Deiner Mail hinzufügen
                            Contao-Community-Treff Bayern: http://www.contao-bayern.de

                            Kommentar

                            • Yangdoo
                              Contao-Nutzer
                              • 28.05.2011
                              • 169

                              #15
                              Hi,

                              ich benötige gerade genau die gleiche Funktion und habe den Hook in meine Seite eingebaut.
                              Bei mir funktioniert es mit diesem Code, der sich von Deinem nicht unterscheidet.

                              PHP-Code:
                              <?php if (!defined('TL_ROOT')) die('You can not access this file directly!');
                              
                              class UnsubscribeNotifier
                              {
                                  public function hookAvisotaUnsubscribe($arrRecipient)
                                  {
                                      
                                  $objEmail = new Email();
                                      $objEmail->subject = "Abmeldung: ". $arrRecipient['email'];
                                      $objEmail->from = $arrRecipient['email'];
                                      $objEmail->fromName ="Newsletter | domain.com";
                              
                                      $text .= "Der Nutzer mit der E-Mail-Adresse " . $arrRecipient['email'] . " hat sich vom Newsletter abgemeldet.";
                              
                                      $objEmail->text = $text;
                                      $objEmail->sendTo( 'test@test.de' );
                                  }
                              }
                              
                              ?>
                              Grüße Marco

                              Kommentar

                              Lädt...