示例#1
0
 public static MIMEModel SerializeMIME(String mime)
 {
     DataSerializer serializer = getSerializer(mime);
     var head = SerializeMIMEHead(mime);
     var model = new MIMEModel();
     model.AddHead(head);
     var boundary = String.Concat("--", head[MIMEPrefix.Boundary]);
     serializeMIME(ref model, boundary, mime);
     return model;
 }
示例#2
0
        /// <summary>
        ///  最终封装model
        /// </summary>
        /// <param name="model"></param>
        /// <param name="mime"></param>
        private static void serializeMIME(ref MIMEModel model, String mime)
        {
            var contentType = DataSerializer.SerializeContentType(mime);
            if (String.IsNullOrEmpty(contentType.Boundary))
            {
                var contentEncoding = DataSerializer.SerializeContentEncoding(mime);
                var data = DataSerializer.SerializeContext(mime);

                switch (contentType.MediaType)
                {
                    case MediaTypeNames.Text.Plain:
                        model.Add(MIMEPrefix.BodyText, MIMEncrypt.ConvertEncoding(contentType.CharSet, contentEncoding, data));
                        break;
                    case MediaTypeNames.Text.Html:
                        model.Add(MIMEPrefix.BodyHtml, MIMEncrypt.ConvertEncoding(contentType.CharSet, contentEncoding, data));
                        break;
                    case MediaTypeNames.Application.Octet:
                    case MediaTypeNames.Image.Gif:
                    case MediaTypeNames.Image.Jpeg:
                        model.AddAttachment(new Attachment
                        {
                            Name = contentType.Name,
                            Data = MIMEncrypt.GetBytesByPattern(contentEncoding, data)
                        });
                        break;
                    default:
                        break;
                }
            }
            else
            {
                var boundary = String.Concat("--", contentType.Boundary);
                serializeMIME(ref model, boundary, mime);
            }
        }
示例#3
0
 private static void serializeMIME(ref MIMEModel model, String boundary, String mime)
 {
     var partials = pickupPartial(boundary, mime);
     for (int i = 0; i < partials.Length; i++)
     {
         serializeMIME(ref model, partials[i]);
     }
 }