setMetaData method

Future<Mailbox?> setMetaData(
  1. MetaDataEntry entry
)

Saves the specified meta data entry.

Set MetaDataEntry.value to null to delete the specified meta data entry Compare https://tools.ietf.org/html/rfc5464 for details.

Implementation

Future<Mailbox?> setMetaData(MetaDataEntry entry) {
  final valueText = entry.valueText;
  Command cmd;
  if (entry.value == null || _isSafeForQuotedTransmission(valueText!)) {
    final cmdText =
        'SETMETADATA "${entry.mailboxName}" (${entry.name} ${entry.value == null ? 'NIL' : '"' + valueText! + '"'})';
    cmd = Command(cmdText);
  } else {
    // this is a complex command that requires continuation responses
    final parts = <String>[
      'SETMETADATA "${entry.mailboxName}" (${entry.name} {${entry.value!.length}}',
      entry.valueText! + ')'
    ];
    cmd = Command.withContinuation(parts);
  }
  final parser = NoResponseParser(_selectedMailbox);
  return sendCommand(cmd, parser);
}