Zum Inhalt springen

Dynamische Emailadresse nach Länderauswahl

Erstellt am 18. November 2015 · 4 Antworten · letzte Antwort am 27. November 2015

Tags: Powermail, TYPO3 6, Frage

opaque ·

Hallo

ich schaffe es nicht die Emailadresse des Empfängers dynamisch nach dem LAND zu setzen:

Im Feld Emailadresse des Emüfängers steht:

{f:cObject(typoscriptObjectPath:'lib.receiver')}

Im Typoscript steht (wobei das Feld mit der Länderauswahl ID 20 hat):

lib.receiver = CASE
lib.receiver {
  key.data = GP:tx_powermail_pi1|field|20
   
  AUT = TEXT
  AUT.value = email@domain.at

  DEU = TEXT
  DEU.value = email@domain.de

  default = TEXT
  default.value = email@domain.com

}

Die Emails werden immer an die default Adresse gesendet.
Weiters habe ich auch schon folgendes probiert:

lib.receiver = CASE
lib.receiver {
  key.data = GP:tx_powermail_pi1|field|20
   
  Austria = TEXT
  Austria.value = email@domain.at

  Germany = TEXT
  Germany.value = email@domain.de

  default = TEXT
  default.value = email@domain.com

}

Ich habe es schon mit einem anderen Feld (Betreff) probiert (Select: 0,1,2) da geht es dann.

Powermail 2.4.3
TYPO3 6.2.12

Mit dank im voraus
opaque

einpraegsam.​net ·

Hi,

ich denke, dass das nicht funktionieren kann. Seit powermail 2.2 haben die Felder keine UID sondern Markernamen.

Wie du dein TypoScript testen kannst?

Pack einfach mal das auf die Seite:

    lib.receiver = CASE
    lib.receiver {
      key.data = GP:tx_powermail_pi1|field|20
     
      Austria = TEXT
      Austria.value = email@domain.at
     
      Germany = TEXT
      Germany.value = email@domain.de
     
      default = TEXT
      default.value = email@domain.com
     
    }
page.1 < lib.receiver

Vermutlich ändert sich die Mail-Adresse nach dem Absenden nicht.
Das Problem liegt vermutlich an der Zeile mit GP:tx_powermail_pi1|field|20
Inspekte mal deinen HTML-Quelltext und schau dir das Namen-Attribut des entsprechenden Feldes an - das sieht vermutlich so oder so ähnlich aus:
tx_powermail_pi1[field][​email]

Dann muss deine TypoScript-Zeile entsprechend so aussehen:

key.data = GP:tx_powermail_pi1|field|email
opaque ·

Hallo

so funktionierts:

In Powermail in das Feld Empfänger Email:

{f:cObject(typoscriptObjectPath:'lib.receiver')}

Ins Setup:

lib.receiver = CASE
lib.receiver {
  key.data = GP:tx_powermail_pi1|field|country
  
  AUT = TEXT
  AUT.value = email@domain.at
     
  DEU = TEXT
  DEU.value = email@domain.de
     
  default = TEXT
  default.value = email@domain.com
     
}
page.1 < lib.receiver

Jetzt möchte ich noch zusätzlich abhängig von einem Dropdownfeld die Emailadresse ändern.
Also wenn das Land Österreich UND Bereich = Software ist dann soll die Email an email@domain.at gehen.
Wenn das Land Österreich UND Bereich = Hardware ist, soll die Email an email@domain.com gehen.

Ich habe ein Dropdown mit den Werten:

<option value="Software">Software</option>
<option value="Hardware">Hardware</option>

Geht das?

Lg opaque

einpraegsam.​net ·

Ins Blaue:

lib.receiver = CASE
lib.receiver {
  key.data = GP:tx_powermail_pi1|field|country
 
  AUT = COA
  AUT.10 = TEXT
  AUT.10.value = email@domain.at
  AUT.10.if.value.data = GP:tx_powermail_pi1|field|hardodersoftware
  AUT.10.if.equals = Software
  AUT.20 = TEXT
  AUT.20.value = email@domain.com
  AUT.20.if.value.data = GP:tx_powermail_pi1|field|hardodersoftware
  AUT.20.if.equals = Hardware
 
  DEU = TEXT
  DEU.value = email@domain.de
 
  default = TEXT
  default.value = email@domain.com
 
}

Hier alles zu TypoScript und if:
https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Functions/If.html

opaque · · Beste Antwort

Sollte es jemand einmal brauchen - hier das fertige TS:

## Empfänger abhängig vom Land und Betreff
lib.receiver = CASE
lib.receiver {
  key.data = GP:tx_powermail_pi1|field|country
  USA = COA
# Wenn das Land USA ist an email@domainUSA.com
  USA.10 = TEXT
  USA.10.value = email@domainUSA.com
# und Betreff (subject - dropdown) Englische Software (engSoftware)
  USA.10.if.value.data = GP:tx_powermail_pi1|field|subject
  USA.10.if.equals = engSoftware
# wenn Betreff nicht Englische Software (engSoftware) sondern irgendetwas anderes ist dann an email@domain.com
  USA.20 = TEXT
  USA.20.value = email@domain.com
  USA.20.if.value.data = GP:tx_powermail_pi1|field|subject
  USA.20.if.equals = engSoftware
  USA.20.if.negate = 1
# wenn das Land nicht USA ist dann an email@domain.com
  default = TEXT
  default.value = email@domain.com
}
page.1 < lib.receiver

# Absender Emailadresse abhängig vom Sender einstellen
plugin.tx_powermail.settings.setup.sender.overwrite.senderEmail < lib.receiver

Wichtig dabei ist die Dropdownfelder mit Text und Wert zu versehen: Englische Software | engSoftware

LG opaque