Hallo,
meine Website ist in zwei Teilbereiche (A und B) aufgeteilt. Für jeden Teilbereich soll ein Kontaktformular bereit stehen, das an das Design des jeweiligen Bereichs angepasst ist.
Zuerst habe ich deshalb in Teilbereich A eine Formular-Seite angelegt. Da man das Powermail-Formular nicht so einfach kopieren kann, wird dessen Inhalt auf einer Seite im Teilbereich B über die Typo3-Option "Inhalt dieser Seite anzeigen: Formular-Seite aus A" eingebunden.
Über die CSS-Dateien der Teilbereiche kann somit das gleiche Formular in Bereich A und B ein unterschiedliches Aussehen erhalten.
Auch die Reply-Email läßst sich für beide Bereiche über Typoscipt (TS) anpassen
[PIDinRootline = 1] #Abfrage, ob in Bereich A
plugin.tx_powermail_pi1.email.sender_mail {
# Reply name
reply.name = TEXT
reply.name.value = Bereich A
# Reply email
reply.email = TEXT
reply.email.value = bereichA@eineurl.url
}
[END]
[PIDinRootline = 19] #Abfrage, ob in Bereich B
plugin.tx_powermail_pi1.email.sender_mail {
# Reply name
reply.name = TEXT
reply.name.value = Bereich A
# Reply email
reply.email = TEXT
reply.email.value = bereichB@eineurl.url
}
[END]
Das eigentliche Problem:
Nun würde ich gerne den Empfänger der Email, den ich in meinem Fomular angegeben habe, über TS überschreiben, also z.B. personA@eineurl.url für Bereich A und personB@eineurl.url für Bereich B. (Somit könnte ich ein Formular für Zwei Webseiten nutzen, würde mir also die Pflege eines zweiten Formulars sparen.)
Wisst Ihr, ob das geht und welches Typoscript dafür zuständig ist?
Vielen Dank im Voraus!
Man kann einen Typoscript Marker im Empfängerfeld setzen
Ups, da dachte ich die Doku gelesen zu haben...
Also unter http://typo3.org/documentation/document-library/extension-manuals/powermail/1.4.14/view/1/4/#id4284419 bin ich dann tatsächlich auf die Marker gestoßen. Sobald es geklappt hat, werd' ich hier mal ein Beispiel anhängen.
Danke für den Hinweis!
Eine Lösung:
Es mag sein, dass über andere Konstrukte/Marker andere Lösungen möglich sind, folgende funktioniert bei mir.
1. Schritt - Marker im Backend einfügen
###POWERMAIL_TYPOSCRIPT_RECIEVER-SUBJECT###
###POWERMAIL_TYPOSCRIPT_RECIEVER-EMAIL###
###POWERMAIL_TYPOSCRIPT_SENDER-SUBJECT###
Wichtig: Die Marker müssen mit POWERMAIL_TYPOSCRIPT_ beginnen
2. Schritt - Über TS Objekte definieren und mit Inhalt füllen
plugin.tx_powermail_pi1 {
# set sender and reciever subject and email from own marker in backend to TEXT
dynamicTyposcript.reciever-subject = TEXT
dynamicTyposcript.reciever-email = TEXT
dynamicTyposcript.sender-subject = TEXT
}
[PIDinRootline = 1] # hier beispielhaft für Bereich A
plugin.tx_powermail_pi1 {
# fill own subject and email markers with data
dynamicTyposcript.reciever-subject.value = Eintrag von Kontaktformular A
dynamicTyposcript.reciever-email.value = Person@BereichA.url
dynamicTyposcript.sender-subject.value = Ihr Eintrag auf Bereich A
}
[END]
Hinweis: plugin.tx_powermail_pi1.dynamicTyposcript.xxx macht den Zauber
Hallo,
ich hab "fast" das gleiche Problem.
Der einzige unterschied ist, das ich den Empfänger abweichend einer Auswahl in der Eingabe machen möchte.
Verwende 3 Radios (Allgemein, Anfrage, Reklamation). Je nach auswahl soll eine andere Abteilung das Mail bekommen.
Als Empfänger hab ich folgenden Marker angelegt:
###POWERMAIL_TYPOSCRIPT_RECIEVER-EMAIL###
Und hier der TS-Code
plugin.tx_powermail_pi1.dynamicTyposcript.reciever-email = TEXT
## Default-Email
plugin.tx_powermail_pi1.dynamicTyposcript.reciever-email.value = fehler@test.de
[globalVar = GP:tx_powermail_pi1|uid43=reklamation ]
plugin.tx_powermail_pi1.dynamicTyposcript.reciever-email.value = email1@test.de
[end]
[globalVar = GP:tx_powermail_pi1|uid43=allgemein ]
plugin.tx_powermail_pi1.dynamicTyposcript.reciever-email.value = email2@test.de
[end]
[globalVar = GP:tx_powermail_pi1|uid43=anfrage ]
plugin.tx_powermail_pi1.dynamicTyposcript.reciever-email.value = email3@test.de
[end]
Damit ich sehe was passiert, lasse ich mir in der Bestätigungsseite vor dem versenden nochmal die Werte anzeigen, und es wird je nach auswahl die richtige E-Mail angezeigt.
Wenn ich dann auf "Senden" drücke, kommt die "Danke für ihre Nachricht" Seite. Auch hier lasse ich mir nochmal die E-Mail anzeigen, und bekomme dann die Default-Adresse.
Das Mail beinhaltet dann als Absender auch die defaultadresse und auch diese bekommt das Mail.
Zu meinen Fragen:
1. Ist es möglich anhand einer Auswahl (Radio, Checkbox) eine abweichende Empfänger E-Mail zu definieren.
2. Wenn ja, was mach ich falsch und wie gehts richtig?
Wäre sehr dankbar für eine Hilfe, da ich nicht das Mailformular 3 Mal machen möchte!
Danke
Martin
Das hast du gesehen:
#76461
Hallo,
ja, dass hab ich gesehen. Möchte aber nicht die User in der Datenbank anlegen und über checkboxen auswählen.
1. Der verweis auf die Empfänger-E-Mail soll ja nicht auswählbar sein
2. Möchte vermeiden die User in eine DB einzutragen, sondern "hardcodiert" über TS zuweisen. Abhängig von der Bedingung die ausgewählt ist.
Die Bedingung gibt ja an, um welche Anfrage das es sich handelt (Anfrage, Reklamation usw.) und sollte nicht die ID auf einen User-DB beinhalten.
Wie gesagt, die Zuweisung funktioniert ja in TS, aber halt nicht bis zum abschluss wo es dann um das versenden geht!
Da "vergisst" powermail anscheinend die Zuweisung und demensprechend greift die Abrage nicht!
Muss ich es über den "hack" machen? Keine andere Lösung? Die Sache mit den dynamischen variablen ist ja super!
danke
Martin
Ich nochmal,
lass mir jetzt auf der Antwortseite (Danke für Ihre nachricht) nochmal die Daten anzeigen aus ###POWERMAIL_ALL###.
Da wird die richtige Einstellung angezeigt. Aber die Variable ###POWERMAIL_TYPOSCRIPT_RECIEVER-EMAIL### wird von TS nicht mehr geändert sondern bleibt auf der Defaulteinstellung.
Spontan würde ich sagen, das auf der Antwortseite das TS nicht mehr gecheckt, durchlaufen wird (bin nicht so fit in Typo3ablauf ;-))
gruß
Martin
Hallole!
Auf dringenden Wunsch eines einzelnen Kunden sollte folgende Konstellation "mal schnell" abgebildet werden:
- wenn "Allgemeine Anfrage" ausgewählt, dann an Empfänger_1 und Empfänger_2
- wenn "Angebot" ausgewählt, dann an Empfänger_3
- wenn "Support" ausgewählt, dann an Empfänger_4
Gelöst habe ich es wie folgt:
- 4 be_user angelegt und die entsprechende Empfänger-Emailadresse angegeben
- bei realName des be_users jeweils "Allgemeine Anfrage", "Angebot", bzw. "Support" eingetragen. Sprich, genau den Text, den der Besucher mittels Radiobutton auswählt
- in Powermail im Tab Empfänger unter "Alternativer SQL-Query" folgendes SQL-Statement eingetragen: select email from be_users where realName = '###UID4###'
Dabei entspricht UID4 den Radiobuttons.
Das war's. War tatsächlich inklusive Test (in einer Spielumgebung) schnell angelegt. Ich denke, das ist auf diese Weise gut machbar, denn die Konstellation war ja nicht wirklich komplex.
Grüße
Erwin
@ehontheim: Damit öffnest du normalerweise Tür und Tor für SQL injection. Powermail müsste aber alle Hochkommas auskommentieren - teste das aber nochmal!
Uff. Jetzt mach mich nicht nervös. Ich habe doch nur ein Beispiel aus dem Manual
http://typo3.org/documentation/document-library/extension-manuals/powermail/1.4.15/view/1/4/#id4307524 im Abschnitt Recipients: Receiver email and subject aufgegriffen
Ich nochmal,
also das Beispiel ist auch angelehnt an
#76461
Ich werde es mal ausprobieren. Obwohl die Sache über TS für mich einfacher und logischer klingt.
Die Frage ist halt nur, warum die "if-Abfrage" für das versenden nicht mehr greift?
#
[globalVar = GP:tx_powermail_pi1|uid43=reklamation ]
#
plugin.tx_powermail_pi1.dynamicTyposcript.reciever-email.value = email1@test.de
#
[end]
gruß
Martin
mardl schrieb
Die Frage ist halt nur, warum die "if-Abfrage" für das versenden nicht mehr greift?
Deine Condition kann nur funktionieren wenn:
a) Keine Bestätigungsseite verwendet wird
b) Dein Formular auf einer Seite ist
Warum? Weil du Werte aus dem POST Request abfragst und nicht aus der Session...
mensch bist du schnell ;-)
hab die Sache von "ehontheim" ausprobiert und funktioniert einwandfrei und fix.
Deine Condition kann nur funktionieren wenn:
a) Keine Bestätigungsseite verwendet wird
b) Dein Formular auf einer Seite ist
a) Meinst du mit Bestätigungsseite die Seite
"Sind diese Angaben korrekt?", Wenn ich unter Formulardaten in Powermail einen hacken bei "Bestätigungsseite aktivieren" mache? Eigentlich brauch ich die Seite nicht!
b) Formular ist komplett auf einer Seite!
Warum? Weil du Werte aus dem POST Request abfragst und nicht aus der Session...
Würde es aus der Session funktionieren? Wenn ja, wie würde da die Syntax lauten?
Vielen Dank
Martin
PS: ...und so nebenbei mal ein sehr großes Lob für den Powermailer
Gute Frage - sollte wohl so funktionieren:
[globalVar = TSFE:fe_user|sesData|powermail_1272|uid43]
...
[end]
1272 ist die uid des tt_content Datensatzes mit powermail...
Super Sache, funktioniert einwandfrei!
Um dem Problem mit/ohne Bestätigungsseite zu umgehen, frage ich einfach beides ab.
plugin.tx_powermail_pi1.dynamicTyposcript.reciever-email = TEXT
# Session Abfragen
[globalVar = TSFE:fe_user|sesData|powermail_78|uid43=Allgemein]
plugin.tx_powermail_pi1.dynamicTyposcript.reciever-email.value = mail1@test.de
[end]
# POST abfragen
[globalVar = GP:tx_powermail_pi1|uid43=Allgemein ]
plugin.tx_powermail_pi1.dynamicTyposcript.reciever-email.value = mail1@test.de
[end]
Obwohl die Sache auch über den be_user funktioniert, gefällt es mir so besser.
Vielen Dank für deine (eure) Unterstützung
Martin
Die POST Daten werden sowieso zu Beginn der Laufzeit in die Session geschrieben - es sollte also immer mit sesData funktionieren...
Cheers, Alex
hi einpraegsam,
hab gestern das update auf die aktuelle version gemacht.
Leider habe ich jetzt das problem das nicht mehr nur die email-adresse als absender bei der bestätigungsmail drin steht, sondern immer "powermail [email1@test.de]"
vor dem Update stand nur "email1@test.de" da.
Dachte ich kann das mit dem
plugin.tx_powermail_pi1.dynamicTyposcript.reciever-email.value = email1@test.de
das Problem beheben, wenn ich da einen Namen angeben kann. Hab aber nichts dazu gefunden wie
plugin.tx_powermail_pi1.dynamicTyposcript.reciever-name.value = DaMardl
Kannst du mir da weiterhelfen bzw. sagen, wie ich den absendernamen "powermail" da rausbekomme?
Schaut komisch aus, wenn auf der bestätigungsmail an den kunden als absender "powermail" steht!
Wie gesagt, seit dem update gestern!
vielen Dank
Mardl
Sollte sich so langsam herumgesprochen haben - wenn man keinen Absendernamen definiert hat, wird "powermail" genommen.
Bild: easycaptures.com/…/0581907842.jpg