Esempio n. 1
0
        /**
         *
         */

        private LogEmail mapper(MimeMessage NovaMensagem, int nroEmail)
        {
            LogEmail NovoEmail = new LogEmail();

            NovoEmail.idEmailServidor  = NovaMensagem.MessageId;
            NovoEmail.assunto          = NovaMensagem.Subject;
            NovoEmail.nomeRemetente    = (NovaMensagem.Sender != null ? NovaMensagem.Sender.Name : NovaMensagem.From.FirstOrDefault().Name);
            NovoEmail.emailRemetente   = (NovaMensagem.Sender != null ? NovaMensagem.Sender.Address : NovaMensagem.From.Mailboxes.FirstOrDefault().Address);
            NovoEmail.corpoMensagem    = ((NovaMensagem.HtmlBody ?? NovaMensagem.TextBody) ?? "");
            NovoEmail.nroEmailServidor = nroEmail;
            NovoEmail.dtEnvio          = NovaMensagem.Date.DateTime;

            NovoEmail.flagFluxo = "R";             //Fluxo de Recebimento

            if (NovaMensagem.ReplyTo.Count > 0)
            {
                NovoEmail.nomeResposta  = NovaMensagem.ReplyTo.FirstOrDefault().Name;
                NovoEmail.emailResposta = NovaMensagem.ReplyTo.Mailboxes.FirstOrDefault().Address;
            }

            var ReturnPath = NovaMensagem.Headers.FirstOrDefault(x => x.Id == MimeKit.HeaderId.ReturnPath);

            if (ReturnPath != null)
            {
                NovoEmail.returnPath = UtilString.onlyEmailChars(ReturnPath.Value);
            }

            if (NovaMensagem.To != null)
            {
                foreach (var EmailTo in NovaMensagem.To.Mailboxes)
                {
                    LogEmailDestino ODestino = new LogEmailDestino();
                    ODestino.emailDestino    = EmailTo.Address;
                    ODestino.nomeDestino     = EmailTo.Name;
                    ODestino.flagCopia       = "N";
                    ODestino.flagCopiaOculta = "N";
                    NovoEmail.listaEmailDestino.Add(ODestino);
                }
            }

            if (NovaMensagem.Cc != null)
            {
                foreach (var EmailTo in NovaMensagem.Cc.Mailboxes)
                {
                    LogEmailDestino ODestino = new LogEmailDestino();
                    ODestino.emailDestino    = EmailTo.Address;
                    ODestino.nomeDestino     = EmailTo.Name;
                    ODestino.flagCopia       = "S";
                    ODestino.flagCopiaOculta = "N";
                    NovoEmail.listaEmailDestino.Add(ODestino);
                }
            }

            if (NovaMensagem.Bcc != null)
            {
                foreach (var EmailTo in NovaMensagem.Bcc.Mailboxes)
                {
                    LogEmailDestino ODestino = new LogEmailDestino();
                    ODestino.emailDestino    = EmailTo.Address;
                    ODestino.nomeDestino     = EmailTo.Name;
                    ODestino.flagCopia       = "S";
                    ODestino.flagCopiaOculta = "N";
                    NovoEmail.listaEmailDestino.Add(ODestino);
                }
            }

            return(NovoEmail);
        }