postMail method
- String uuid = '',
- String from = '-',
- List<
String> ? to, - List<
String> ? cc, - List<
String> ? bcc, - String name = '-',
- String description = '-',
- String subject = '-',
- String htmlContent = '-',
- String plainContent = '-',
- String template = '',
- Map<
String, dynamic> ? templateData, - List<
Map< ? attachments,String, dynamic> > - int priorityValue = 3,
- String priorityText = 'normal',
- bool acknowledgementRequired = false,
- bool keepCalendar = false,
- DateTime? startTime,
- String action = '',
- String actions = '',
- String serialization = '',
- bool assignAddress = false,
- bool assignProject = false,
- bool assignProduct = false,
- bool assignContact = false,
- bool sendAssignReceiver = false,
- bool assignAction = false,
Erstellt eine neue E-Mail als Entwurf
Legt eine neue E-Mail mit allen erforderlichen Headern und Inhalten an. Die E-Mail wird als Entwurf gespeichert und kann später bearbeitet oder gesendet werden.
uuid - Eindeutige UUID für die E-Mail (optional)
from - Absender-Adresse (Standard: "-")
to - Liste der Empfänger-Adressen
cc - Liste der CC-Empfänger
bcc - Liste der BCC-Empfänger
subject - Betreff der E-Mail
htmlContent - HTML-Inhalt der E-Mail
plainContent - Plain-Text-Inhalt der E-Mail
template - Vorlagen-Name für automatische Inhaltserstellung
templateData - Daten für die Vorlagen-Verarbeitung
attachments - Liste der Anhänge (Format: {"name": "file.pdf", "data": "base64..."})
priorityValue - Prioritätswert (1=hoch, 3=normal, 5=niedrig)
acknowledgementRequired - Lesebestätigung erforderlich
Returns: RestApiResponse mit E-Mail-ID und Erstellungsstatus
Beispiel:
RestApiResponse response = await api.v1.mail.postMail(
to: ["kunde@example.com"],
subject: "Angebot Nr. 12345",
htmlContent: "<p>Sehr geehrte Damen und Herren...</p>",
priorityValue: 2
);
Hinweis zur neuen API:
Erstellt eine E-Mail als Objekt (POST v1/mail).
Implementation
Future<RestApiResponse> postMail({
String uuid = '',
String from = '-',
List<String>? to,
List<String>? cc,
List<String>? bcc,
String name = '-',
String description = '-',
String subject = '-',
String htmlContent = '-',
String plainContent = '-',
String template = '',
Map<String, dynamic>? templateData,
List<Map<String, dynamic>>? attachments,
int priorityValue = 3,
String priorityText = 'normal',
bool acknowledgementRequired = false,
bool keepCalendar = false,
DateTime? startTime,
String action = '',
String actions = '',
String serialization = '',
bool assignAddress = false,
bool assignProject = false,
bool assignProduct = false,
bool assignContact = false,
bool sendAssignReceiver = false,
bool assignAction = false,
}) {
final Map<String, String> query = <String, String>{};
if (action.isNotEmpty) query['action'] = action;
if (actions.isNotEmpty) query['actions'] = actions;
if (serialization.isNotEmpty) query['serialization'] = serialization;
final Map<String, dynamic> body = <String, dynamic>{
'~UUID': uuid,
'from': from,
};
if (to != null) body['to'] = to;
if (cc != null) body['cc'] = cc;
if (bcc != null) body['bcc'] = bcc;
body['name'] = name;
body['description'] = description;
body['subject'] = subject;
body['htmlContent'] = htmlContent;
body['plainContent'] = plainContent;
if (template != '') body['template'] = template;
if (templateData != null) body['templateData'] = templateData;
if (attachments != null) body['attachments'] = attachments;
body['acknowledgementRequired'] = acknowledgementRequired;
body['keepCalendar'] = keepCalendar;
if (startTime != null) body['startTime'] = startTime.toISOFormatString();
// Bewusste Legacy-Parität: postMail baut priorityValue/priorityText zwar,
// hängt sie aber NIE an den Body (toter Code im Legacy-Manager). Deshalb
// gibt es hier - anders als bei patchMail/postMailSend - keinen
// 'priority'-Schlüssel. priorityValue/priorityText bleiben nur zur
// Signatur-Kompatibilität erhalten.
body['assignAddresses'] = assignAddress;
body['assignProjects'] = assignProject;
body['assignProducts'] = assignProduct;
body['assignContacts'] = assignContact;
body['assignActions'] = assignAction;
body['sendAssignReceiver'] = sendAssignReceiver;
return _execute(
method: ApiHttpMethod.post,
path: '/mail',
queryParameters: query,
body: jsonEncode(body),
operation: 'postMail',
);
}