# E-Mails

## Das E-Mail Objekt

| Attribut                 | Typ        | Beschreibung                                                 |
| ------------------------ | ---------- | ------------------------------------------------------------ |
| id                       | integer    | Unique ID der E-Mail                                         |
| subject                  | string     | Betreff der E-Mails                                          |
| body                     | string     | Inhalt der E-Mail als HTML                                   |
| broker\_id               | integer    | Nutzer-ID, der die E-Mail erhalten oder verschickt hat       |
| from                     | string\[]  | Absender der E-Mail                                          |
| to                       | string\[]  | Empfänger der E-Mail                                         |
| cc                       | string\[]  | Empfänger im Kopie                                           |
| bcc                      | string\[]  | Empfänger in Blindkopie                                      |
| client\_ids              | integer\[] | Ein Array von Kontakt-IDs, die mit der E-Mail verknüpft sind |
| property\_ids            | integer\[] | Ein Array von Objekt-IDs, die mit der E-Mail verknüpft sind  |
| project\_ids             | integer\[] | Ein Array von Projekt-IDs, die mit der E-Mail verknüpft sind |
| message\_attachment\_ids | integer\[] | IDs der Anhänge der E-Mail als Array                         |
| client\_source\_id       | integer    | Falls E-Mail eine Anfrage ist, die ID der Quelle der E-Mail  |
| message\_category\_id    | integer    | die ID des E-Mail-Types der E-Mail                           |

### Assoziationen

Eine E-Mail hat mehrere Assoziationen, die beim Lesen der E-Mail mitgezogen werden können. Unter anderem die Infos zum Nutzer, zu den verknüpften Kontakten, Objekten, Projekten und zu den Anhängen der E-Mail.

1. broker
2. attachments
3. clients
4. units (Property)
5. projects
6. client\_source
7. message\_category

### Anhänge

| Attribut | Typ     | Beschreibung                                   |
| -------- | ------- | ---------------------------------------------- |
| id       | integer | Unique ID des Anhanges                         |
| name     | string  | Name des Anhanges                              |
| url      | string  | URL zum Anhang (nur für wenige Minuten gültig) |

## E-Mail senden

<mark style="color:green;">`POST`</mark> `https://api.propstack.de/v1/messages`

#### Request Body

| Name        | Type    | Description                                                                     |
| ----------- | ------- | ------------------------------------------------------------------------------- |
| broker\_id  | integer | Absender der E-Mail. ID des Nutzers, über den die E-Mail versendet werden soll. |
| snippet\_id | integer | ID des Textbausteines, welcher versendet werden soll                            |
| cc          | array   | Empfänder der E-Mail in CC. Eine Liste an E-Mail-Adressen                       |
| to          | array   | Empfänger der E-Mail. Eine Liste an E-Mail-Adresen                              |

#### Beispiel Anfrage:

```json
{
    "message": {
        "broker_id": 12,
        "to": [
            "kontakt@mail.com"
        ],
        "snippet_id": 1,
        "property_ids": [ 
            15 
        ]
    }
}
```

{% tabs %}
{% tab title="200 " %}

```json
{
  "ok": true,
  "id": 48192929
}
```

{% endtab %}
{% endtabs %}

## E-Mail aktualisieren

<mark style="color:orange;">`PUT`</mark> `https://api.propstack.de/v1/messages/:id`

#### Request Body

| Name                                      | Type    | Description                                                  |
| ----------------------------------------- | ------- | ------------------------------------------------------------ |
| message<mark style="color:red;">\*</mark> | object  | ein `message` Objekt,  siehe unten für alle möglichen Felder |
| read                                      | boolean | Status "gelesen"                                             |
| archived                                  | boolean | Status "archiviert"                                          |
| message\_category\_id                     | integer | ID der E-Mail-Kategorie                                      |
| client\_ids                               | array   | verknüpfte Kontakte                                          |
| property\_ids                             | array   | verknüpfte Objekte                                           |
| project\_ids                              | array   | verknüpfte Projekte                                          |

#### Beispiel Anfrage:

```json
{
    "message": {
        "message_category_id": 1
    }
}
```

{% tabs %}
{% tab title="200 E-Mail-Objekt" %}

```javascript
{
  "id": 1,
  "subject": "Propstack",
  "body": "Hallo",
  ...
}
```

{% endtab %}
{% endtabs %}
