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
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