Ergebnis 1 bis 12 von 12

Thema: Neue Erweiterung mailFromTable

  1. #1
    Contao-Urgestein Avatar von jan.theofel
    Registriert seit
    23.06.2009.
    Ort
    Berlin
    Beiträge
    1.846

    Standard Neue Erweiterung mailFromTable

    Hallo,

    ich habe eine Möglichkeit geschaffen, mittels einem normalen Contao-Formular (alternativ auch EFG) eine E-Mail an einen Eigentümer eines Datensatzes zu senden ohne dessen E-Mail-Adresse zu veröffentlichen.

    Beispiele könnten sein:
    - Teilnehmerliste in der keine E-Mail-Adressen veröffentlicht werden, die Teilnehmer aber anmailbar sein sollten (Beispiel)
    - Anzeige von Katalog-/Metamodels-Datensätzen deren Besitzer anmailbar sein soll
    - Anzeige von Stellenanzeigen, bei denen die Bewerbung direkt an den Ausschreibenden gehen soll (Beispiel)
    - Kontaktbox auf jeder Webseite, bei der der Autor dieser Seite angeschrieben werden kann.

    Dazu kommt die neue Erweiterung mailFromTable (für Contao 2.11 und 3.x verfügbar) zum Einsatz. Ergänzt wird diese durch inputvar und formrecipient.

    Eine Anleitung gibt es hier. Nun bin ich gespannt, ob das so verständlich ist. ;-)

    Jan
    Jan Theofel
    Barcamp-Moderator für Corporate-Barcamps und öffentliche Barcamps

  2. #2
    Gesperrt
    Registriert seit
    07.05.2011.
    Beiträge
    1.199

    Standard

    Ja, klingt soweit alles nachvollziehbar. Dankeschön - gute Idee. Ich habs mir gebookmarkt, falls ich das mal brauchen könnte. Eine potenzielle Verwendung fiel mir sogar gleich dazu ein.

  3. #3
    Contao-Nutzer
    Registriert seit
    07.06.2010.
    Beiträge
    6

    Standard mailfromtable bringt fehler bei mailgenerierung

    Lieber Jan,

    Danke für deine hilfreichen Extensions.
    Ich kann mailfromtable sehr gut gebrauchen. Leider habe ich einen Fehler festgestellt. Wenn ich das Formular, in dem ich Mailfromtable wie von dir beschrieben verwende, absende, dann kommen folgende Fehlermeldungen:
    Fatal error: Uncaught exception Swift_RfcComplianceException with message Address in mailbox given [] does not comply with RFC 2822, 3.6.2. thrown in …\plugins\swiftmailer\classes\Swift\Mime\Hea ders\MailboxHeader.php on line 310
    #0 …\plugins\swiftmailer\classes\Swift\Mime\Hea ders\MailboxHeader.php(231): Swift_Mime_Headers_MailboxHeader->_assertValidAddress('')
    #1 …\plugins\swiftmailer\classes\Swift\Mime\Hea ders\MailboxHeader.php(94): Swift_Mime_Headers_MailboxHeader->normalizeMailboxes(Array)
    #2 …\plugins\swiftmailer\classes\Swift\Mime\Hea ders\MailboxHeader.php(58): Swift_Mime_Headers_MailboxHeader->setNameAddresses(Array)
    #3 …\plugins\swiftmailer\classes\Swift\Mime\Sim pleHeaderFactory.php(56): Swift_Mime_Headers_MailboxHeader->setFieldBodyModel(Array)
    #4 …\plugins\swiftmailer\classes\Swift\Mime\Sim pleHeaderSet.php(71): Swift_Mime_SimpleHeaderFactory->createMailboxHeader('To', Array)
    #5 …\plugins\swiftmailer\classes\Swift\Mime\Sim pleMessage.php(300): Swift_Mime_SimpleHeaderSet->addMailboxHeader('To', Array)
    #6 …\system\libraries\Email.php(409): Swift_Mime_SimpleMessage->setTo(Array)
    #7 …\system\modules\frontend\Form.php(405): Email->sendTo(Array)
    #8 …\system\modules\formrecipient\FormRecipient .php(24): Form->processFormData(Array, Array)
    #9 …\system\modules\frontend\Form.php(222): FormRecipient->processFormData(Array, Array)
    #10 …\system\modules\frontend\Hybrid.php(163): Form->compile()
    #11 …\system\modules\frontend\Form.php(74): Hybrid->generate()
    #12 …\system\libraries\Controller.php(511): Form->generate()
    #13 …\system\modules\frontend\ModuleArticle.php( 194): Controller->getContentElement('45')
    #14 …\system\modules\frontend\Module.php(140): ModuleArticle->compile()
    #15 …\system\modules\frontend\ModuleArticle.php( 71): Module->generate()
    #16 …\system\libraries\Controller.php(443): ModuleArticle->generate(false)
    #17 …\system\libraries\Controller.php(307): Controller->getArticle('15', false, false, 'main')
    #18 …\system\modules\frontend\PageRegular.php(10 0): Controller->getFrontendModule('0', 'main')
    #19 …\index.php(266): PageRegular->generate(Object(DB_Mysql_Result))
    #20 …\index.php(401): Index->run()
    #21 {main}

    Ich habe ein wenig herumgesucht, und bin draufgekommen, dass es im Modul Form.php folgendes Codestück gibt:
    // Continue if the class is not defined
    if (!$this->classFileExists($strClass))
    {
    continue;
    }

    Wenn das durchlaufen wird für $strClass="FormMailFromTable", dann liefert das classFileExists ein False und damit ist in der Folge der Name des E-Mail Empfängers leer, was zu obigem Fehler führt.
    Wenn ich das Codestück mit der Abfrage unter Kommentar stelle, dann funktioniert die Erweiterung perfekt.

    Jetzt möchte ich aber nicht einfach Codeteile verändern. Wenn ich ein Update auf eine höhere Version mache, dann ist ja diese Änderung wieder weg.
    Daher die Bitte: Kannst du mir sagen, ob da bei deiner Extension mailfromtable noch etwas geändert gehört, damit die Klassendefinition gefunden wird.

    Danke für deine Hilfe.

    Liebe Grüße
    Martin

  4. #4
    Contao-Nutzer
    Registriert seit
    27.11.2013.
    Beiträge
    39

    Standard

    Hallo,

    Deine Erweiterung wäre genau das was ich bräuchte, nur komme ich mit deiner Anleitung irgendwie nicht wirklich zurecht. Wie wird die E-Mail Adresse in der DB gespeichert, wo er sich die raus ziehen soll? Deine Anleitung bezieht sich in dem Punkt nicht direkt auf eine Metamodels-Tabelle und dessen entsprechendes Feld... Auch den Punkt mit der "id" verstehe ich nicht ganz, da ich dann wohl zu jedem Datensatz eine E-Mail Adresse eintragen muss?... wie "fische" ich diese dann am besten aus der Tabelle?

    Ich bin zwar einmal deine Anleitung durchgegangen, aber es passierte einfach... nichts. Kann sein, dass ich etwas zu blond an deine Erweiterung drangehe...

    Ich möchte einfach den "Bewerben"-Link mit dem Formular bauen, wie in einem deiner Beispiele, nur beim wie hapert es grad.

    Kann mir da jemand vielleicht das ganze einfacher und detaillierter erklären wie ich das mit Metamodels hin bekomme?

    Danke im Voraus.
    Sinainu

  5. #5
    Contao-Nutzer
    Registriert seit
    07.06.2010.
    Beiträge
    6

    Standard

    Hallo Sinainu,
    ich habe die E-Mail Adresse in der entsprechenden MetaModelsdatei stehen. Bei mir heißt die Datei mm_haeuser, sie enthält ein Feld email und natürlich das Feld id.
    Im Formular verwende ich dann den Feldtyp "Geschützte E-Mail aus Tabelle", Feldname: id, Standardwert: {{get::id::specialchars}}, Tabelle mit der E-Mail Adresse: mm_haueser, Tabllenspalte mit der E-Mail Adresse: email

    Liebe Grüße
    Martin

  6. #6
    Contao-Nutzer
    Registriert seit
    14.03.2013.
    Beiträge
    11

    Standard

    Hi zusammen,

    ich habe die Erweiterung entsprechend der Anleitung in meine Seite eingefügt, Contao Version 3.2.7 (vielleicht liegt auch hier das Problem?). Allerdings bekomme ich folgenden Fehler:

    PHP Fatal error: Uncaught exception 'Swift_RfcComplianceException' with message 'Address in mailbox given [69] does not comply with RFC 2822, 3.6.2.'

    wobei das Problem zu sein scheint, dass anstatt der E-Mail nur die id des Datensatzes als Adresse vorliegt.
    Die Konfiguration ist nahezu 1-zu-1 aus der Anleitung: Tabelle ist tl_member, Spalte email, Empfängeradresse für das Formular {{form::id}}, entsprechend des hidden field.

    Irgendwelche Ideen?

    Viele Grüße und Danke,
    Alex.

  7. #7
    Contao-Nutzer
    Registriert seit
    03.08.2013.
    Beiträge
    7

    Standard

    Zitat Zitat von malitze Beitrag anzeigen
    Hi zusammen,

    ich habe die Erweiterung entsprechend der Anleitung in meine Seite eingefügt, Contao Version 3.2.7 (vielleicht liegt auch hier das Problem?). Allerdings bekomme ich folgenden Fehler:

    PHP Fatal error: Uncaught exception 'Swift_RfcComplianceException' with message 'Address in mailbox given [69] does not comply with RFC 2822, 3.6.2.'

    wobei das Problem zu sein scheint, dass anstatt der E-Mail nur die id des Datensatzes als Adresse vorliegt.
    Die Konfiguration ist nahezu 1-zu-1 aus der Anleitung: Tabelle ist tl_member, Spalte email, Empfängeradresse für das Formular {{form::id}}, entsprechend des hidden field.

    Irgendwelche Ideen?

    Viele Grüße und Danke,
    Alex.
    Moin,
    ich hatte vorhin die gleiche Meldung. Es gibt vermutlich mehrere mögliche Fehlerquellen. Bei mir fehlte ein doppelter Doppelpunkt bei { {get::id::specialchars} } (Leerzeichen zwischen den geschweiften Klammern wegmachen) des Feldes "Standard-Wert". Prüfe also erstmal mal die Inserttags, so dass auch doppelten Doppelpunkte wirklich enthalten sind.

  8. #8
    Contao-Nutzer
    Registriert seit
    21.01.2014.
    Ort
    Kiel
    Beiträge
    131

    Standard

    Moin,

    bekommt man die Festlegung der ID des Datensatzes auch anders realisiert - (also ohne die Verwendung eines Links, da ich diesen bei Metamodels über ein URL select Menü auswähle und daher nicht frei definieren kann) ?
    Ausserdem wäre der Fall eines externen Aufrufs nicht abgedeckt...


    Besten Gruß
    Geändert von taktell81 (11.09.2014 um 00:26 Uhr)

  9. #9
    Contao-Fan Avatar von operatorone
    Registriert seit
    19.06.2009.
    Ort
    Kitzingen
    Beiträge
    547

    Standard

    Hallo Jan,

    vielen Dank für die Entwicklung dieser Erweiterung. Die Funktion ist genau das was ich brauche.

    Ich arbeite auch gerade mit einer Mitgliederliste und einer Detailseite für mehr Informationen zu dem Mitglied. Von hier aus möchte ich gerne eine Formular abschicken, um dem betreffenden Mitglied eine Nachricht zukommen zu lassen.

    Ich habe die Erweiterungen mailFromTable, mailrecipient und inputvar installiert und nach deiner Anleitung eingerichtet.
    Leider erzeugt die Detailseite keinen Link in der benötigten Form http://www.bleibgesundcamp.de/teilnehmer-kontakt.html?id=2&empfaenger=Jan%20Theofel , sondern meine URL sieht folgendermaßen aus http://neu.dvse.info/organisation/mi...ember/748.html.

    Wie kann ich nun die ID des Mitglieds an das Formular übergeben? Hättest du dazu eine Idee?
    Für deine Hilfe wäre ich sehr dankbar und ich kann dich auch gerne für eventuellen Zeitaufwand entschädigen :-)

    Viele Grüße,
    operatorone

  10. #10
    Contao-Nutzer
    Registriert seit
    06.10.2009.
    Beiträge
    161

    Standard

    Wenn ich mich nicht täusche, dann ist die 748 schon deine ID!? Dein GET Parameter heißt in diesem Fall "member", also {{get::member::specialchars}} eintragen.

  11. #11
    Contao-Fan Avatar von operatorone
    Registriert seit
    19.06.2009.
    Ort
    Kitzingen
    Beiträge
    547

    Standard

    Hi amimoto,

    danke für den Tip. Der Wahnsinn! Hat super funktioniert.


    Viele Grüße,
    operatorone

  12. #12
    Contao-Fan Avatar von operatorone
    Registriert seit
    19.06.2009.
    Ort
    Kitzingen
    Beiträge
    547

    Standard

    Hallo zusammen,

    ich habe in einer Entwicklungs-Instanz eine Seite von 3.2.15 auf 3.5.6 aktualisiert. Ich verwende eine Kombination von mailfromtable, inputvar und mailreceiptient um Nachrichten an Mitglieder aus dem Frontend zuversenden (siehe oben). Leider geht dies nach dem Update auf 3.5.6 nicht mehr und das Formular meldet nur "Formular konnte nicht gsendet werden". Im Log finde ich dann eine Meldung die so lautet:

    Form could not be sent: Address in mailbox given [MAIL BY ID FROM TABLE tl_member] does not comply with RFC 2822, 3.6.2.

    Hättet ihr dazu eine Idee oder vielleicht müsste die Erweiterung aktualisiert werden oder es gibt eine Alternative. In einem anderen Thread hat jemand das NotificationCenter angesprochen, aber hier wüsste ich nicht, wie ich das anwenden sollte.

    Vielen Dank für eure Hilfe im Voraus.

    Viele Grüße,
    operatorone

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
  •