示例#1
0
        public static SEMessage Create(Guid eventID, GeneratedMessage message, StringDictionary stringDictionary, string body)
        {
            var mail = new SEMessage();

            mail.HtmlBody = body;
            mail.EventID  = eventID;
            foreach (string key in stringDictionary.Keys)
            {
                mail[key] = stringDictionary[key];
            }
            if (message.Subject != null)
            {
                mail[SEMessage.SUBJECT] = message.Subject;
            }
            if (message.Body != null)
            {
                mail.HtmlBody = message.Body;
            }
            if (message.Replay != null)
            {
                mail[REPLYTO] = message.Replay;
            }
            if (message.From != null)
            {
                mail[FROM] = message.From;
            }

            return(mail);
        }
示例#2
0
        public static SEMessage Create(SPEmailMessage mail)
        {
            var res = new SEMessage();

            res.inner = mail;
            foreach (var i in mail.Headers)
            {
                res.headers.Add(i.Name, i.Value);
            }
            res.PlainBody = mail.PlainTextBody;
            res.HtmlBody  = mail.HtmlBody;
            res.Sender    = mail.Sender;
            return(res);
        }
        public int GetRelatedItemId(SEMessage mail)
        {
            var res     = -1;
            var subject = mail.Subject ?? string.Empty;
            var matches = Regex.Matches(subject, @"\(([0-9]+)\)");

            if (matches.Count > 0)
            {
                var value = matches[0].Groups[1].Value;
                subject      = subject.Replace(value, "");
                mail.Subject = subject;
                res          = int.Parse(value);
            }
            return(res);
        }
示例#4
0
 internal IIncomingMessageProcessor CreateIncomingProcessor(SPList list, SEMessage message)
 {
     try
     {
         if (list.BaseTemplate == SPListTemplateType.DiscussionBoard)
         {
             return(new IncomingDiscussionBoardProcessor(list, message, Logger, new SubjectThreadStrategy(), new TextParserStrategy()));
         }
         else if (list.BaseTemplate == SPListTemplateType.DocumentLibrary)
         {
             return(new IncomingDiscussionBoardProcessor(list, message, Logger, new SubjectThreadStrategy(), new TextParserStrategy()));
         }
     }
     catch (Exception ex)
     {
         Logger.WriteTrace("Error during in processor creating", SeverityEnum.CriticalError);
         Logger.WriteTrace(ex, SeverityEnum.CriticalError);
     }
     return(null);
 }
示例#5
0
 public void Precess(SEMessage mail, SPAlertEventData ed)
 {
     m_strategy.OnMailSending(mail, ed.itemId);
 }
 public void OnMailSending(SEMessage mail, int ItemId)
 {
     mail.Subject = mail.Subject + string.Format("({0})", ItemId);
 }