Benutzer-Werkzeuge

Webseiten-Werkzeuge


typo3:powermail

Powermail (powermail)

Snippets

Dynamische Anrede

Mit folgendem TypoScript lässt sich in Powermail 2.x eine dynamische Anrede des Benutzers in E-Mails und Bestätigungsseite bewerkstelligen.

TypoScript:

lib.anrede = CASE
lib.anrede {
  key.field = 0
 
  default = TEXT
  default.value = Sehr geehrte Damen und Herren,
 
  Herr = TEXT
  # Die "7" ist die ID des Powermail-Felds {name}
  Herr.data = GP:tx_powermail_pi1|field|7
  Herr.noTrimWrap = |Sehr geehrter Herr |,|
 
  Frau = TEXT
  Frau.data = GP:tx_powermail_pi1|field|7
  Frau.noTrimWrap = |Sehr geehrte Frau |, |
 
 
  # Englische Übersetzung:
  Mr = TEXT
  Mr.data = GP:tx_powermail_pi1|field|7
  Mr.noTrimWrap = |Dear Mr |, |
 
  Mrs = TEXT
  Mrs.data = GP:tx_powermail_pi1|field|7
  Mrs.noTrimWrap = |Dear Mrs |, |
 
  Ms = TEXT
  Ms.data = GP:tx_powermail_pi1|field|7
  Ms.noTrimWrap = |Dear Ms |, |
}

ViewHelper für Powermail-Plugin:

{f:cObject(typoscriptObjectPath:'lib.anrede',data:'{anrede}')}

Quelle: typo3.net - Forum

Ab Powermail 2.1.x werden Powermail-Felder nicht mehr über die UID, sondern den Markernamen angesprochen. Dementsprechend müssen die Zeilen im TypoScript etwas angepasst werden:

# Powermail-Feld {name}
Herr.data = GP:tx_powermail_pi1|field|name

Empfänger-E-Mail nach gewählter Abteilung

Mit stdWrap.replacement wird hier zudem das Problem mit Leerzeichen im Namen der Auswahl behoben:

plugin.tx_powermail.settings.setup.receiver.overwrite.email = CASE
plugin.tx_powermail.settings.setup.receiver.overwrite.email {
    key.data = GP:tx_powermail_pi1|field|pleaseselectthereceiver
    // Leerzeichen durch Bindestriche ersetzen:
    key.stdWrap.replacement {
        10 {
          // 32 = ASCII-Code für ein Leerzeichen
          search.char = 32
          // 45 = ASCII-Code für einen Bindestrich
          replace.char = 45
        }
    }
 
    default = TEXT
    default.value = info@example.org
 
    General-request = TEXT
    General-request.value = info@example.org
 
    Application = TEXT
    Application.value = application@example.org
 
    // Deutsche Übersetzung:
    Allgemeine-Anfrage = TEXT
    Allgemeine-Anfrage.value = info@example.org
 
    Bewerbung = TEXT
    Bewerbung.value = application@example.org
}

Multiple E-Mails in Dropdown-Menü

Wenn über ein Dropdown-Menü mehr als eine Empfänger-E-Mail angegeben werden muss, kann dies mithilfe von fe_users geschehen. Für jeden Empfänger wird ein Webseiten-Benutzer angelegt, die jeweiligen UIDs werden kommasepariert nach dem Pipe-Symbol | ins Textfeld des Dropdown-Menüs eingetragen.

Beispiel eines Menüs, das den Empfänger je nach gewähltem Land auswählt:

Belgien | 1,4
Deutschland | 2
Österreich | 2,3

Per Typoscript und SQL-Befehl können die E-Mail-Adressen der gewählten fe_users ausgelesen werden:

plugin.tx_powermail_pi1.email.recipient_mail { 
        email_query = TEXT 
        email_query.value = SELECT email FROM fe_users WHERE uid IN(###UID14###) 
} 

Zu beachten ist, dass der Text vor dem Pipe-Symbol nicht mit dem Marker in der E-Mail ausgegeben werden kann! Es erscheint nur der Wert dahinter.


Empfangsbestätigung: Name des Absenders ändern

Ohne Korrektur versendet Powermail seine E-Mails an den Absender des Kontaktformulars mit dem Namen „Powermail“. Um dies zu ändern, genügt dieses Typoscript:

plugin.tx_powermail_pi1.email.sender_mail.sender.name.value = Name

Powermail-Marker

Neben dem Marker ###POWERMAIL_ALL### können die Formularinhalte auch einzeln abgerufen werden, z.B. für die gesendeten E-Mails. Hierfür hat jedes Formularfeld seine UID. Auch die Labels können mit ###LABEL_UID### ausgelesen werden.

Ihre Nachricht an uns:
###UID1### ###UID2### ###UID3###
###UID4###
###LABEL_UID5###: ###UID5###
Nachricht: ###UID6###

wird so zu:

Ihre Nachricht an uns:
Herr Michael Mustermann
mail@example.com
Auswahlfeld: Wahl A
Nachricht: Lorem ipsum …


Überflüssige JavaScripts und Stylesheets entfernen

Setup-Konfigurationen für Powermail 2.0.x:

# JavaScripts entfernen:
page.includeJSFooterlibs {
  # jQuery bereits gesetzt:
  powermailJQuery >
  # jQuery UI Datepicker wird nicht benötigt
  powermailJQueryUi >
  powermailJQueryUiDatepicker >
}
 
# CSS entfernen:
page.includeCSS {
  powermailJQueryUiTheme >
  powermailJQueryUiDatepicker >
}
 
# Powermail nur für entsprechende Seite:
[PIDinRootline = 17]
page.includeCSS.powermail = fileadmin/Resources/Public/Css/powermail-responsive.css
[else]
page {
  includeJSFooterlibs {
    powermailJQueryFormValidationLanguage >
    powermailJQueryFormValidation >
    powermailJQueryTabs >
  }
  includeJSFooter {
    powermailForm >
  }
}
[global]

Ab Powermail 2.1.x genügt es, folgende Angaben in Constants zu setzen:

plugin.tx_powermail.settings {
  javascript.addJQueryFromGoogle = 0
  javascript.addAdditionalJavaScript = 0
}

Diverses

# Spamshield aktivieren:
plugin.tx_powermail.settings.setup.spamshield._enable = 1
 
# Fallback, um einzelne Templates zu verändern:
plugin.tx_powermail.view {
  templateRootPath >
  templateRootPaths {
    10 = EXT:powermail/Resources/Private/Templates/
    20 = fileadmin/Resources/Private/Templates/powermail/
  }
}
typo3/powermail.txt · Zuletzt geändert: 2018/06/20 22:01 von admin