Webform: Empfänger abhängig von Formfeld-Inhalt definieren
![](https://www.drupalcenter.de/files/imagecache/upic_mini/pictures/picture-4041.png)
am 29.11.2010 - 22:17 Uhr in
Hallo Drupalers
Ich habe ein Webform für eine Immobiliensite erstellt. Dort gibts ein Antwortformular wo der Benutzer via Radiobuttons wählen kann, ob er Infos zur Miete oder zum Kauf erhalten möchte. Da dafür zwei verschiedene Firmen verantwortlich sind, soll diese Auswahl dafür zuständig sein, an welche Empfänger-E-Mail das Formular geschickt wird.
Also bei Wahl von «Miete» soll das Formular an Mailadresse A geschickt werden, bei Wahl von «Kauf» an Mailadresse B.
Kann mir da jemand helfen, oder gibts gar ein Modul, welches sowas erledigt?
Freu mich auf Hilfe oder Tipps.
Pierre
- Anmelden oder Registrieren um Kommentare zu schreiben
Webform und Empfänger
am 30.11.2010 - 08:37 Uhr
Hallo.
Das ist relativ einfach machbar.
* erstelle Dir ein neues Feld im Webform (ich nenne es mal "receipient"): http://screencast.com/t/QYqhnrNk59Xh
* diesem Feld fügst Du dann die gewünschten Optionen hinzu: http://screencast.com/t/iemiLGWJI
* als Email-Empfänger des Webforms wählst Du jetzt die gerade erstellte Komponente aus: http://screencast.com/t/BSO3Owj1bwsa
* jetzt kommt der etwas kompliziertere Teil von "relativ einfach":
<?php
/**
* @file
* Main file for Webform conditional recipient.
*/
/**
* Implement hook_mail_alter().
*
* @param $message
* A structured array containing the message to be altered.
* Keys in this array include: id, to, subject, body, from, headers.
*/
function webform_condition_mail_alter(&$message) {
$aliases = webform_conditional_aliases();
$messages['to'] = str_replace($aliases['key'], $aliases['mail'], $message['to']);
}
/**
* Get the list of available mail aliases.
*/
function webform_conditional_aliases() {
$aliases = array();
$aliases['key'][] = 'sales';
$aliases['mail'][] = 'sales@example.com';
$aliases['key'][] = 'rental';
$aliases['mail'][] = 'rental@example.com';
return $aliases;
}
?>
Diesen Code packst Du in ein kleines Modul namens "webform_conditional" und schon bekommst Du die Ergebnisse des Webforms je nach Auswahl an unterschiedliche Adressen gesendet. Das könnte man jetzt noch ein wenig aufhübschen mit Administrationsoberfläche und automagisch erstellter Komponente, aber so funktioniert das auch erstmal.
hth,
Stefan
Select Form component biete diese Funktionalität - ohne Kodierun
am 30.11.2010 - 10:00 Uhr
Mit diesem Webform Feld kannst Du Radio Buttons oder eine Select Liste anlegen mit "Key-Value pairs" wo Du beliebige Optionen zu Emails zuordnen kannst.
Z.B.:
berlin@myserver.de|Berlin
chemnitz@myserver.de|Chemnitz
duesseldorf@myserver.de|Düsseldorf
...
Beim E-Mails Tab definierst Du dann eine "Email-to" für den Value "Regional Verwalter" (oder wir Deine Auswahl Liste heißt)
Email
am 30.11.2010 - 11:43 Uhr
Problem dabei ist jedoch, dass die Adressen dann im Quelltext stehen und die Empfänger sich bald über jede Menge Spam freuen dürfen :)
wow... danke für die Hilfe.
am 30.11.2010 - 11:59 Uhr
wow... danke für die Hilfe.
Werd die beiden Varianten mal durchspielen. Paul... ich hoffe ich krieg das mit dem Modul gebacken, hab ich noch nie gemacht. Aber ein Versuch ists wert.
Herzlichen Dank mal bis hier :-)
Ich hab irgendwo gelesen,
am 26.12.2013 - 16:31 Uhr
Ich hab irgendwo gelesen, dass diese Methode ab Version 3.x nicht mehr funktioniert, kann das sein?
Hier übrigens eine ganz andere Methode, um das Problem zu lösen:
https://drupal.org/comment/5188896#comment-5188896
wie in das Modul einfügen
am 08.02.2017 - 17:02 Uhr
Hallo Stefan,
ich habe das genau nach Deiner Anleitung gemacht.
Doch das einfügen in das Modul gelingt mir nicht.
Ich habe den Code (mit meinen Mails und KEYs) einfach an das Ende von webform_coditional.modul eingefügt
Da kommt dann aber ein Fataler Error und nichts geht mehr.
Wie mache ich das richtig?
Danke
Axel
www.oekodorf-chiemgau.de
Webform mit verschiedenen Empfänger-Mailadressen
am 08.02.2017 - 17:46 Uhr
Das Einfügen in das Modul hat geklappt. Es erscheint kein Fehler mehr.
(das PHP am Anfang war zuviel, gelöscht und gut ist)
jedoch wird das Formularresulat nicht versendet.
Online steht es in den Webform Ergebnissen, aber eine Mail geht nicht raus.
Gibt es noch eine Lösung?
Danke
Axel