Example #1
0
        public EmailMessageInfo ReadMessageStream(Stream stm, string attachmentDir)
        {
            SharpMessage sm = new SharpMessage(stm);

            EmailMessageInfo emi = new EmailMessageInfo();
            emi.From = sm.FromAddress;
            emi.Subject = sm.Subject;
            emi.BodyPlainText = sm.Body;
            List<string> lst = new List<string>();
            foreach (SharpMimeAddress addr in sm.To)
            {
                lst.Add(addr.ToString());
            }
            emi.To = lst.ToArray();
            lst = new List<string>();
            foreach (SharpMimeAddress addr in sm.Cc)
                lst.Add(addr.ToString());
            emi.Cc = lst.ToArray();
            emi.BodyText = sm.Body;
            foreach (SharpAttachment att in sm.Attachments)
            {
                if (!Directory.Exists(attachmentDir)) Directory.CreateDirectory(attachmentDir);
                AttachmentInfo ai = new AttachmentInfo();
                ai.Name = att.Name;
                string saveFile = Path.Combine(attachmentDir, att.Name);
                att.Save(saveFile, true);
                ai.FileName = saveFile;
                emi.Attachments.Add(ai);
            }

            foreach (object hdr in sm.Headers)
            {
            }
            return emi;
        }
Example #2
0
 public void HandleEmail(EmailMessageInfo emi)
 {
     IDictionary<string, object> vars = new Dictionary<string,object>();
     vars["Message"] = emi;
     IQuackFu v = new QuackWrapper(vars);
     _rulez.EvaluateRules(RulesFile, v, Context);
 }
Example #3
0
 public override void Initialize()
 {
     Message = (EmailMessageInfo)this.Variables.QuackGet("Message", null);
     MessageBus = (IMessageBus)Context.QuackGet("MessageBus", null);
     base.Initialize();
 }