public Task<Message> CreateAccountLevelMessageAsync(Message message, Account account, Folder folder)
        {
            if (message == null)
                throw new ArgumentNullException(nameof(message));
            if (account == null)
                throw new ArgumentNullException(nameof(account));

            var clonedMessage = message.Clone();
            clonedMessage.Id = 0;
            clonedMessage.AccountId = account.Id;
            clonedMessage.FolderId = folder.Id;
            clonedMessage.Filename = Path.ChangeExtension(Guid.NewGuid().ToString(), ".eml");
            clonedMessage.Recipients = new List<Recipient>();

            var messageFileFullPath = GetMessageFullFileName(account, clonedMessage);
            var messageDirectory = Path.GetDirectoryName(messageFileFullPath);

            // TODO: Should be possible to do this asynchronously.
            Directory.CreateDirectory(messageDirectory);
            File.Copy(Path.Combine(_dataDirectory, message.Filename), messageFileFullPath);

            return Task.FromResult(clonedMessage);
        }