addMessagePart method
PartBuilder
addMessagePart(
- MimeMessage mimeMessage, {
- ContentDisposition disposition = ContentDisposition.attachment,
Adds the message mimeData
as a message/rfc822
content with the given subject
as its filename.
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, 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) as Uint8List, partBuilder),
);
}
return partBuilder;
}