setHeader method

void setHeader(
  1. String name,
  2. String? value, [
  3. HeaderEncoding encoding = HeaderEncoding.none
])

Sets a header with the specified name, value and optional encoding,

replacing any existing header with the same name.

Implementation

void setHeader(String name, String? value,
    [HeaderEncoding encoding = HeaderEncoding.none]) {
  headers ??= <Header>[];
  final lowerCaseName = name.toLowerCase();
  headers!.removeWhere((h) => h.lowerCaseName == lowerCaseName);
  var localValue = value;
  if (value != null) {
    if (encoding == HeaderEncoding.Q) {
      localValue = MailCodec.quotedPrintable
          .encodeHeader(value, nameLength: name.length);
    } else if (encoding == HeaderEncoding.B) {
      localValue =
          MailCodec.base64.encodeHeader(value, nameLength: name.length);
    }
  }
  headers!.add(Header(name, localValue, encoding));
}