예제 #1
0
        public MensagemResponseStatusEnum EnviarEmailSuitability(Nullable <int> pIdCliente, String pPerfil, List <String> pDestinatarios, string pAssunto, string pNomeArquivo, Dictionary <string, string> pVariaveisEmail, eTipoEmailDisparo pTipoEmailDisparo, List <Gradual.OMS.Email.Lib.EmailAnexoInfo> pAnexos = null)
        {
            using (var lStreamReader = File.OpenText(this.Server.MapPath(string.Concat("~/Extras/Emails/", pNomeArquivo)))) //--> Carregando o arquivo num StreamReader
            {
                var lStringBuilder = new System.Text.StringBuilder(lStreamReader.ReadToEnd());                              //--> Convertendo o arquivo html em texto.

                foreach (KeyValuePair <string, string> item in pVariaveisEmail)
                {
                    lStringBuilder.Replace(item.Key, item.Value); //--> Substituindo as variáveis do conteúdo do e-mail.
                }
                var lAtivador = Ativador.Get <IServicoEmail>();

                if (lAtivador != null)
                {
                    var lEmailEntrada = new EnviarEmailRequest();
                    lEmailEntrada.Objeto               = new EmailInfo();
                    lEmailEntrada.Objeto.Assunto       = pAssunto;
                    lEmailEntrada.Objeto.Destinatarios = pDestinatarios;
                    lEmailEntrada.Objeto.Remetente     = ConfigurationManager.AppSettings["EmailRemetenteGradual"].ToString();
                    lEmailEntrada.Objeto.CorpoMensagem = lStringBuilder.ToString();

                    if (pTipoEmailDisparo.Equals(eTipoEmailDisparo.Compliance))
                    {
                        lEmailEntrada.Objeto.DestinatariosCO = new List <string>()
                        {
                            ConfiguracoesValidadas.EmailComCopiaOculta
                        };
                    }

                    if (null != pAnexos)
                    {
                        foreach (var item in pAnexos)
                        {
                            lEmailEntrada.Objeto.Anexos.Add(item);
                        }
                    }

                    EnviarEmailResponse lEmailRetorno = lAtivador.Enviar(lEmailEntrada);


                    if (MensagemResponseStatusEnum.OK.Equals(lEmailRetorno.StatusResposta))
                    {
                        ServicoPersistencia.SalvarObjeto <LogEmailInfo>(new SalvarObjetoRequest <LogEmailInfo>()
                        {
                            Objeto = new LogEmailInfo(lEmailEntrada.Objeto, pTipoEmailDisparo, pIdCliente, pPerfil)
                        });
                    }

                    return(lEmailRetorno.StatusResposta);
                }
                else
                {
                    throw new Exception("Ativador nulo ao enviar email. Provável erro de configuração, verificar entradas para 'TipoDeObjetoAtivador' e seção de config para 'IServicoEmail'");
                }
            }
        }
예제 #2
0
        private MensagemResponseStatusEnum EnviarEmail(List <string> pDestinatarios, string pAssunto, string pCorpoEmail, eTipoEmailDisparo pTipoEmailDisparo, List <Gradual.OMS.Email.Lib.EmailAnexoInfo> pAnexos = null)
        {
            var lAtivador = Ativador.Get <IServicoEmail>();

            if (lAtivador != null)
            {
                var lEmailEntrada = new EnviarEmailRequest();
                lEmailEntrada.Objeto               = new EmailInfo();
                lEmailEntrada.Objeto.Assunto       = pAssunto;
                lEmailEntrada.Objeto.Destinatarios = pDestinatarios;
                lEmailEntrada.Objeto.Remetente     = ConfigurationManager.AppSettings["EmailRemetenteGradual"].ToString();
                lEmailEntrada.Objeto.CorpoMensagem = pCorpoEmail;

                if (pTipoEmailDisparo.Equals(eTipoEmailDisparo.Compliance))
                {
                    //if (pTipoEmailDisparo.Equals(eTipoEmailDisparo.Compliance))
                    //{
                    lEmailEntrada.Objeto.DestinatariosCO = new List <string>()
                    {
                        ConfiguracoesValidadas.EmailComCopiaOculta
                    };
                    //}
                }

                if (null != pAnexos)
                {
                    foreach (var item in pAnexos)
                    {
                        lEmailEntrada.Objeto.Anexos.Add(item);
                    }
                }

                EnviarEmailResponse lEmailRetorno = lAtivador.Enviar(lEmailEntrada);


                if (MensagemResponseStatusEnum.OK.Equals(lEmailRetorno.StatusResposta))
                {
                    ServicoPersistencia.SalvarObjeto <LogEmailInfo>(new SalvarObjetoRequest <LogEmailInfo>()
                    {
                        Objeto = new LogEmailInfo(lEmailEntrada.Objeto, pTipoEmailDisparo)
                    });
                }

                return(lEmailRetorno.StatusResposta);
            }
            else
            {
                throw new Exception("Ativador nulo ao enviar email. Provável erro de configuração, verificar entradas para 'TipoDeObjetoAtivador' e seção de config para 'IServicoEmail'");
            }
        }