---
title: Personalisierte Anreden
slug: campaign/docs/personalisierte-anreden
docTags: 
createdAt: 2026-08-06T15:53:50.960Z
---

Dieses Kapitel beschreibt Anredelogiken in [ODR](docId\:XIYunGJ2DGzRB_U5QL2Yp) und und [Velocity](docId\:XIYunGJ2DGzRB_U5QL2Yp). Standardmäßig verwendet Optimizely Campaign ODR-Anredelogiken.

:::hint{type="info"}
**Note**

Verwenden Sie Ihre spezifischen Daten und Empfängerlistenfelder, und testen Sie die Feldfunktionen, bevor Sie sie in einem Mailing verwenden.
:::

## ODR

Nachfolgend finden Sie Standard- und spezielle ODR-Anredelogiken inklusive Feldfunktionsvorlagen.

:::hint{type="info"}
**Note**

ODR kann keine Sonderzeichen als HTML-Codes ausgeben. Da einige E-Mail-Programme jedoch die jeweiligen HTML-Codes benötigen, um Sonderzeichen korrekt darzustellen, müssen Sie für diese Fälle Velocity verwenden.
:::

### Anreden ohne Titel

Für die personalisierte Anrede *Sehr geehrte Frau*, *Sehr geehrter Herr* beziehungsweise *Sehr geehrte Damen und Herren* können Sie den folgenden ODR-Code verwenden:

```html
<odr:set value="%{lower(user.data.salutation)}" var="salut"/><odr:set value="%{user.data.lastname}" var="lname"/><odr:choose>  <odr:when test="%{not isEmpty(lname) and (salut eq 'herr' or salut eq 'frau')}">    <odr:choose>      <odr:when test="%{salut eq 'herr'}">        <odr:out value="Sehr geehrter Herr" />      </odr:when>      <odr:when test="%{salut eq 'frau'}">        <odr:out value="Sehr geehrte Frau" />      </odr:when>    </odr:choose>    <odr:out value=" %{lname}" />  </odr:when>  <odr:otherwise>    <odr:out value="Sehr geehrte Damen und Herren" />  </odr:otherwise></odr:choose>
```

### Anreden mit Titel

Sofern Ihre Empfängerliste ein Empfängerlistenfeld für den Anredetitel enthält, können Sie diesen mit dem folgenden ODR-Code ausgeben:

```html
<odr:set value="%{lower(user.data.salutation)}" var="salut"/><odr:set value="%{user.data.title}" var="title"/><odr:set value="%{user.data.lastname}" var="lname"/><odr:choose>  <odr:when test="%{not isEmpty(lname) and (salut eq 'herr' or salut eq 'frau')}">    <odr:choose>      <odr:when test="%{salut eq 'herr'}">        <odr:out value="Sehr geehrter Herr" />      </odr:when>      <odr:when test="%{salut eq 'frau'}">        <odr:out value="Sehr geehrte Frau" />      </odr:when>    </odr:choose>    <odr:choose>	  <odr:when test="%{not isEmpty(title)}">	    <odr:out value=" %{title}" />      </odr:when>    </odr:choose>    <odr:out value=" %{lname}" />  </odr:when>  <odr:otherwise>    <odr:out value="Sehr geehrte Damen und Herren" />  </odr:otherwise></odr:choose>
```

### Gemischte Anreden

Wenn Sie verschiedene Einträge im Empfängerlistenfeld für die Anrede haben, können Sie folgenden ODR-Code verwenden:

```html
<odr:set value="(herr|m|1|male|mr|mr.)" var="male" /><odr:set value="(frau|w|2|f|female|mrs|mrs.)" var="female" /><odr:set value="%{user.data.lastname}" var="lastname" /><odr:set value="%{lower(user.data.salutation)}" var="salutation" /><odr:choose>  <odr:when test="%{!isEmpty(lastname) and (matches(salutation, male) or matches(salutation, female))}">    <odr:choose>      <odr:when test="%{matches(salutation, female)}">        <odr:out value="Sehr geehrte Frau" />      </odr:when>      <odr:when test="%{matches(salutation, male)}">        <odr:out value="Sehr geehrter Herr" />      </odr:when>    </odr:choose>    <odr:out value=" %{lname}" />  </odr:when>  <odr:otherwise>    <odr:out value="Sehr geehrte Damen und Herren" />  </odr:otherwise></odr:choose>
```

:::hint{type="info"}
**Tip**

Im Code-Beispiel wird davon ausgegangen, dass im Empfängerlistenfeld die Werte *Herr*, *M*, *1*, *Male*, *Mr*, *Mr.* bzw. *Frau*, *W*, *2*, *F*, *Female*, *Mrs*, *Mrs.* vorhanden sind.
:::

:::hint{type="info"}
**Note**

Wenn *Mr* und *Mrs* abgefragt werden, muss bei der Ausgabe die weibliche Anrede zuerst stehen, da *Mr* sowohl auf *male* als auch *female* zutrifft. Andernfalls wird immer die männliche Anrede ausgegeben.
:::

### Mehrfache Anreden

Sofern sie mehrere Empfängerlistenfelder für verschiedene Anreden haben, können Sie den folgenden ODR-Code als Standard-Ersetzung verwenden:

:::hint{type="info"}
**Note**

Sie müssen für beide Anreden und Nachnamen entsprechende Empfängerlistenfelder referenzieren.
:::

```html
<odr:set value="%{lower(user.data.salutation)}" var="salut"/><odr:set value="%{user.data.lastname}" var="lname"/><odr:set value="%{lower(user.data.salutation2)}" var="salut2"/><odr:set value="%{user.data.lastname2}" var="lname2"/><odr:choose>  <odr:when test="%{(not isEmpty(lname) and (salut eq 'herr' or salut eq 'frau')) and (not isEmpty(lname2) and (salut2 eq 'herr' or salut2 eq 'frau'))}">    <odr:choose>      <odr:when test="%{(salut eq 'frau') and (salut2 eq 'frau')}">        <odr:out value="Sehr geehrte Frau %{lname}," />	 <odr:out value="&lt;br&gt;"/>	 <odr:out value="sehr geehrte Frau %{lname2},"/>      </odr:when>      <odr:when test="%{(salut eq 'herr') and (salut2 eq 'frau')}">        <odr:out value="Sehr geehrte Frau  %{lname2}," />	 <odr:out value="&lt;br&gt;"/>		 <odr:out value="sehr geehrter Herr %{lname},"/>	      </odr:when>      <odr:when test="%{(salut eq 'frau') and (salut2 eq 'herr')}">	 <odr:out value="Sehr geehrte Frau %{lname}," />	 <odr:out value="&lt;br&gt;"/>			 <odr:out value="sehr geehrter Herr %{lname2},"/>		      </odr:when>      <odr:when test="%{(salut eq 'herr') and (salut2 eq 'herr')}">	 <odr:out value="Sehr geehrter Herr %{lname}," />	 <odr:out value="&lt;br&gt;"/>			 <odr:out value="sehr geehrter Herr %{lname2},"/>      </odr:when>    </odr:choose>			  </odr:when>  <odr:otherwise>    <odr:out value="Sehr geehrte Damen und Herren" />  </odr:otherwise></odr:choose>
```

Folgenden ODR-Code müssen Sie zusätzlich als Text-Inhalt einfügen:

:::hint{type="info"}
**Note**

Sie müssen für beide Anreden und Nachnamen entsprechende Empfängerlistenfelder referenzieren.
:::

```html
<odr:set value="%{lower(user.data.salutation)}" var="salut"/><odr:set value="%{user.data.lastname}" var="lname"/><odr:set value="%{lower(user.data.salutation2)}" var="salut2"/><odr:set value="%{user.data.lastname2}" var="lname2"/><odr:set value="%{character('10')}" var="br"/><odr:choose>  <odr:when test="%{(not isEmpty(lname) and (salut eq 'herr' or salut eq 'frau')) and (not isEmpty(lname2) and (salut2 eq 'herr' or salut2 eq 'frau'))}">    <odr:choose>      <odr:when test="%{(salut eq 'frau') and (salut2 eq 'frau')}">        <odr:out value="Sehr geehrte Frau %{lname}," />	 <odr:out value="%{br}"/>	 <odr:out value="sehr geehrte Frau %{lname2},"/>      </odr:when>      <odr:when test="%{(salut eq 'herr') and (salut2 eq 'frau')}">        <odr:out value="Sehr geehrte Frau %{lname2}," />	 <odr:out value="%{br}"/>		 <odr:out value="sehr geehrter Herr %{lname},"/>	      </odr:when>      <odr:when test="%{(salut eq 'frau') and (salut2 eq 'herr')}">	 <odr:out value="Sehr geehrte Frau %{lname}," />	 <odr:out value="%{br}"/>			 <odr:out value="sehr geehrter Herr %{lname2},"/>		      </odr:when>      <odr:when test="%{(salut eq 'herr') and (salut2 eq 'herr')}">	 <odr:out value="Sehr geehrter Herr %{lname}," />	 <odr:out value="%{br}"/>			 <odr:out value="sehr geehrter Herr %{lname2},"/>      </odr:when>    </odr:choose>			  </odr:when>  <odr:otherwise>    <odr:out value="Sehr geehrte Damen und Herren" />  </odr:otherwise></odr:choose>
```

## Velocity

Für die personalisierte Anrede *Sehr geehrte Frau*, *Sehr geehrter Herr* beziehungsweise *Sehr geehrte Damen und Herren* können Sie den folgenden Velocity-Code als Standard-Ersetzung verwenden:

:::hint{type="info"}
**Tip**

Um Sonderzeichen in HTML-Code umzuwandeln, beinhaltet der Velocity-Code die Funktion `$HtmlUtils.encodeEntities()`.
:::

```velocity
#set($salutation = $!user.data.salutation)#set($lastname = $!user.data.lastname)#if (!$StringHelper.isEmpty($salutation) && !$StringHelper.isEmpty($lastname) && ($salutation.equals("Herr") || $salutation.equals("Frau")))  #if ($salutation.equals("Herr"))    Sehr geehrter Herr  #else    Sehr geehrte Frau  #end  $HtmlUtils.encodeEntities($user.data.lastname)#else  Sehr geehrte Damen und Herren#end
```

Folgenden Velocity-Code (ohne die Funktion `$HtmlUtils.encodeEntities()`) müssen Sie zusätzlich einzeilig als Text-Inhalt einfügen:

```velocity
#set($salutation = $!user.data.salutation)#set($lastname = $!user.data.lastname)#if (!$StringHelper.isEmpty($salutation) && !$StringHelper.isEmpty($lastname) && ($salutation.equals("Herr") || $salutation.equals("Frau")))#if ($salutation.equals("Herr"))Sehr geehrter Herr #else$!{null}Sehr geehrte Frau #end$user.data.lastname#else$!{null}Sehr geehrte Damen und Herren#end
```
