예제 #1
0
        public MultipartReport Build()
        {
            // Initiate multipart

            var multipart = new MultipartReport("disposition-notification");

            // Insert text part
            var textPart = new TextPart();

            textPart.ContentTransferEncoding = ContentEncoding.SevenBit;
            textPart.SetText(Encoding.ASCII, this.sw.ToString());
            textPart.ContentTransferEncoding = ContentEncoding.SevenBit;
            multipart.Add(textPart);

            // Insert header part
            var headerPart = new MessageDispositionNotification();

            headerPart.ContentTransferEncoding = ContentEncoding.Default;
            foreach (var header in this.headers)
            {
                headerPart.Fields.Add(header);
            }
            headerPart.ContentTransferEncoding = ContentEncoding.SevenBit;
            multipart.Add(headerPart);
            return(multipart);
        }
예제 #2
0
        public void TestSerializedContent()
        {
            const string expected = "Reporting-UA: joes-pc.cs.example.com; Foomail 97.1\nOriginal-Recipient: rfc822;[email protected]\nFinal-Recipient: rfc822;[email protected]\nOriginal-Message-ID: <*****@*****.**>\nDisposition: manual-action/MDN-sent-manually; displayed\n\n";
            var          mdn      = new MessageDispositionNotification();

            mdn.Fields.Add("Reporting-UA", "joes-pc.cs.example.com; Foomail 97.1");
            mdn.Fields.Add("Original-Recipient", "rfc822;[email protected]");
            mdn.Fields.Add("Final-Recipient", "rfc822;[email protected]");
            mdn.Fields.Add("Original-Message-ID", "<*****@*****.**>");
            mdn.Fields.Add("Disposition", "manual-action/MDN-sent-manually; displayed");

            using (var memory = new MemoryStream()) {
                mdn.Content.DecodeTo(memory);

                var text = Encoding.ASCII.GetString(memory.GetBuffer(), 0, (int)memory.Length).Replace("\r\n", "\n");
                Assert.AreEqual(expected, text);
            }
        }
예제 #3
0
        public void TestArgumentExceptions()
        {
            var mdn = new MessageDispositionNotification();

            Assert.Throws <ArgumentNullException> (() => mdn.Accept(null));
        }
예제 #4
0
        public HeaderList GetMdnFields()
        {
            MessageDispositionNotification bp = this.GetMessageDispositionNotificationPart();

            return(bp.Fields);
        }
예제 #5
0
 protected internal override void VisitMessageDispositionNotification(MessageDispositionNotification entity)
 {
     MessageDispositionNotification++;
     base.VisitMessageDispositionNotification(entity);
 }