예제 #1
0
        public Task <IMimeMessage> CreateInstance(IEnumerable <MimeHeader> headers,
                                                  IEnumerable <MimeEntity> bodyParts,
                                                  IEnumerable <MimeEntity> attachments)
        {
            var message = new global::MimeKit.MimeMessage();

            message.Headers.Clear();

            foreach (var header in headers)
            {
                message.Headers.Add(header.Field, header.Value);
            }

            var multipartMixed       = new Multipart("mixed");
            var multipartAlternative = new MultipartAlternative();

            foreach (var bodyPart in bodyParts)
            {
                multipartAlternative.Add(CreateMimePart <TextPart>(bodyPart));
            }

            multipartMixed.Add(multipartAlternative);

            foreach (var attachment in attachments)
            {
                multipartMixed.Add(CreateMimePart <MimePart>(attachment));
            }

            message.Body = multipartMixed;

            return(Task.FromResult((IMimeMessage) new MimeMessage(message)));
        }
예제 #2
0
 internal MimeMessage(global::MimeKit.MimeMessage mimeMessage)
 {
     _mimeMessage = mimeMessage ?? throw new ArgumentNullException(nameof(mimeMessage));
     Headers      = _mimeMessage.Headers.Select(x => new MimeHeader(x.Field, x.Value));
     BodyParts    = GetBodyParts();
     Attachments  = GetAttachments();
     Size         = CalculateMessageSize();
     IsEncrypted  = CheckIfEncrypted();
 }
예제 #3
0
            public void Can_Construct()
            {
                // Arrange
                var mimeMessage = new global::MimeKit.MimeMessage();

                // Act
                var result = new MimeMessage(mimeMessage);

                // Assert
                Assert.That(result, Is.Not.Null);
            }
예제 #4
0
            public void ToString_Returns_Correct_Value_For_An_Empty_Message()
            {
                // Arrange
                var expectedMessage = "";

                var message = new global::MimeKit.MimeMessage();

                message.Headers.Clear();

                var mimeMessage = new MimeMessage(message);

                // Act
                var result = mimeMessage.ToString();

                // Assert
                // MimeKit adds a carriage return to the end of the message when loading it
                Assert.That(result, Is.EqualTo(expectedMessage + Environment.NewLine));
            }
예제 #5
0
            public void Returns_Correct_Value_For_An_Empty_Message()
            {
                // Arrange
                var message = new global::MimeKit.MimeMessage();

                message.Headers.Clear();

                var mimeMessage = new MimeMessage(message);

                // MimeKit adds a carriage return to the end of the message when loading it
                // This results in an extra two bytes
                var expectedSize = 0 + 2;

                // Act
                var result = mimeMessage.Size;

                // Assert
                Assert.That(result, Is.EqualTo(expectedSize));
            }
예제 #6
0
 private IMimeMessage CreateMimeMessage(global::MimeKit.MimeMessage parsedMimeMessage)
 {
     return(new MimeMessage(parsedMimeMessage));
 }