Beispiel #1
0
        public static Draft AddToDraftBody(Draft draft, string subject  = null, string text          = null, List <IUserInfo> to   = null,
                                           List <IUserInfo> cc          = null, List <IUserInfo> bcc = null, List <IUserInfo> from = null,
                                           List <FileStream> fileStream = null, CancellationToken cancellationToken = default(CancellationToken))
        {
            draft.NullInspect(nameof(draft));
            if (draft.Message?.Raw == null)
            {
                throw new InvalidOperationException($"The {nameof(Draft.Message)} must contain a non-null Raw property.");
            }

            var decodedRaw = Base64.DecodeUrlSafeToBytes(draft.Message.Raw);

            using (var stream = new MemoryStream(decodedRaw))
            {
                var mimeMessage = MimeMessage.Load(stream, cancellationToken);
                FillMimeMessage(mimeMessage, subject, text, to, cc, bcc, from, fileStream);
                var message = TransformMimeMessageToMessage(mimeMessage);
                return(new Draft {
                    Message = message
                });
            }
        }
Beispiel #2
0
 public FormattedMessage(Draft draft)
 {
     draft.NullInspect(nameof(draft));
     DraftId = draft.Id;
     ParseMessage(draft.Message);
 }