addMessagePart method
PartBuilder
addMessagePart(
- MimeMessage mimeMessage, {
- ContentDisposition disposition = ContentDisposition.attachment,
Adds the message mimeMessage as a message/rfc822 content.
Optionally specify the disposition which defaults to
ContentDisposition.attachment.
Implementation
PartBuilder addMessagePart(
MimeMessage mimeMessage, {
ContentDisposition disposition = ContentDisposition.attachment,
}) {
// message data can be binary or textual
// even binary message data should not be base64 encoded,
// since it has itself encodings etc
final mediaType = MediaSubtype.messageRfc822.mediaType;
final subject = mimeMessage.decodeSubject()?.replaceAll('"', r'\"');
final filename = '${subject ?? ''}.eml';
final messageText = mimeMessage.renderMessage();
final partBuilder = addPart(
mimePart: MimePart()
..mimeData = TextMimeData(messageText, containsHeader: false),
mediaSubtype: MediaSubtype.messageRfc822,
disposition:
ContentDispositionHeader.from(disposition, filename: filename),
);
if (disposition == ContentDisposition.attachment) {
_attachments.add(
AttachmentInfo(
null,
mediaType,
filename,
null,
disposition,
utf8.encode(messageText),
partBuilder,
),
);
}
return partBuilder;
}