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