setHeader method
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));
_headersModified = true;
}