Exemplo n.º 1
0
        public NovellGroupWiseMail ReadMail(string id)
        {
            WebReference.Mail            item;
            WebReference.getItemRequest  req = new WebReference.getItemRequest();
            WebReference.getItemResponse resp;
            NovellGroupWiseMail          mail = new NovellGroupWiseMail();

            req.id   = id;
            req.view = "default message peek attachments recipientStatus";
            resp     = ws.getItemRequest(req);

            if (0 == resp.status.code)
            {
                item = (WebReference.Mail)resp.item;
                if (item is WebReference.Mail)
                {
                    String str = item.GetType().ToString();
                    int    i   = str.LastIndexOf('.');
                    if (-1 != i)
                    {
                        str = str.Substring(i + 1);
                    }

                    mail.Recipients = new List <GroupWiseMailRecipient>();
                    Recipient[] rec = item.distribution.recipients;
                    for (int j = 0; j < rec.Count(); j++)
                    {
                        GroupWiseMailRecipient recipient = new GroupWiseMailRecipient
                        {
                            Id               = rec[j].uuid,
                            Email            = rec[j].email,
                            DistributionType = rec[j].distType.ToString(),
                            Name             = rec[j].displayName
                        };
                        mail.Recipients.Add(recipient);
                    }


                    mail.To = item.distribution.to;
                    mail.BC = item.distribution.bc;
                    mail.CC = item.distribution.cc;



                    String Text = str;
                    mail.HasAttachments = item.hasAttachment;
                    if (null != item.distribution && null != item.distribution.from &&
                        null != item.distribution.from.displayName)
                    {
                        mail.From = item.distribution.from.displayName;
                    }
                    if (null != item.distribution.to)
                    {
                        mail.To = item.distribution.to;
                    }
                    if (null != item.subject)
                    {
                        mail.Subject = item.subject;
                    }
                    if (null != item.message && 0 != item.message.Length)
                    {
                        WebReference.MessagePart part = (WebReference.MessagePart)item.message.GetValue(0);
                        System.Text.UTF8Encoding utf8 = new System.Text.UTF8Encoding();
                        mail.Text = utf8.GetString(part.Value);
                    }
                    //   if (mail.HasAttachments)
                    //    {
                    WebReference.AttachmentItemInfo info;
                    List <string> attachmentsArray = new List <string>();
                    if (item.attachments != null)
                    {
                        for (i = 0; i < item.attachments.Length; i++)
                        {
                            info = (WebReference.AttachmentItemInfo)item.attachments.GetValue(i);
                            if (null == info || info.id.itemReference)
                            {
                                continue;
                            }
                            string fileName = exportData(info);
                            if (info.name.ToLower() == "text.htm")
                            {
                                mail.HtmlText = File.ReadAllText(HttpContext.Current.Request.ServerVariables["APPL_PHYSICAL_PATH"] + "//" + fileName);
                            }
                            else //if (info.name.ToLower() != "mime.822")
                            {
                                attachmentsArray.Add(fileName);
                            }
                        }
                        mail.Attachments = attachmentsArray;
                    }
                    //  }
                }
            }

            return(mail);
        }