示例#1
0
        private static IEnumerable <MailItem> CreateMailItems(ILogger logger, MimeMessage message, IConnector connector, IMailFolder folder, UniqueId uniqueId)
        {
            string messageEml = null;

            try
            {
                var stream = new MemoryStream();
                message.WriteTo(stream);
                stream.Position = 0;
                //var reader = new StreamReader(stream,Encoding.UTF8, true);
                var reader = new StreamReader(stream);
                messageEml = reader.ReadToEnd();
            }
            catch (Exception e)
            {
                logger.LogError(e, "Serialization failed");
            }

            DateTimeOffset date = DateTimeOffset.MinValue;

            try
            {
                date = message.Date;
            }
            catch
            {
            }

            foreach (var address in message.From)
            {
                if (address is MailboxAddress mailboxAddress)
                {
                    yield return(MailItem.CreateMailItem(mailboxAddress.Address, mailboxAddress.Name,
                                                         connector.ServerKey, folder.FullName, uniqueId.Id, messageEml, date));
                }
            }
        }