向用户发送Email的实体类
        /// <summary>
        /// Carrega as informações do arquivo de configuração do E-mail.
        /// </summary>
        /// <returns></returns>
        public static Email CarregarInformacoesLoginServidor()
        {
            Cryptor cr;
            string CaminhoDoArquivo = String.Format("{0}/Email.dat", Ferramentas.ObterCaminhoDoExecutavel());
            Email EmailBase = new Email();
            StreamReader sr = null;
            cr = new Cryptor("p@$$w0rd");

            try
            {
                sr = new StreamReader(CaminhoDoArquivo);

                EmailBase.email = cr.Decrypt(sr.ReadLine());
                EmailBase.Senha = cr.Decrypt(sr.ReadLine());
                EmailBase.Host = cr.Decrypt(sr.ReadLine());
                EmailBase.Port = int.Parse(cr.Decrypt(sr.ReadLine()));
            }
            catch (System.Exception exc)
            {
                ControllerArquivoLog.GeraraLog(exc);
            }
            finally
            {
                if (sr != null)
                    sr.Close();
            }
            return EmailBase;
        }
        /// <summary>
        ///  Configurando e enviando e-mail. (Decodificando)
        /// </summary>
        /// <param name="NomeUsuario"></param>
        public string Enviar(string NomeCliente, string EmailCliente, string NomeEmpresa, string MenssagemBase)
        {
            string Saida = " ";

            Email EmailBase = new Email();
            ControllerEmail controllerEmail = new ControllerEmail();

            EmailBase = controllerEmail.LoadConfig();//Carregando informações do servidor.

            System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient(EmailBase.Host, EmailBase.Port);   //Servidor
            System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage(); //Menssagem
            mail.From = new System.Net.Mail.MailAddress(EmailBase.EnderecoEmail);

            //Configurando servidor.
            smtp.EnableSsl = true;
            smtp.UseDefaultCredentials = false;
            smtp.Credentials = new System.Net.NetworkCredential(EmailBase.EnderecoEmail, EmailBase.Senha);//Passando Login e senha do e-mail da empresa(para enviar)

            //Assunto do email.
            mail.Subject = String.Format("Serviço pronto - {0}", NomeEmpresa);

            //Informando sobre o corpo.
            mail.IsBodyHtml = true;

            //Conteúdo do email.
            mail.Body = MenssagemBase;

            //Adicionando E-mail do cliente para enviar.
            mail.To.Add(EmailCliente);

            //Prioridade de Envio.
            mail.Priority = System.Net.Mail.MailPriority.High;

            try
            {
                //Envia o email.
                smtp.Send(mail);

                Saida = "E-mail enviado com sucesso!";
            }
            catch (System.Exception exc)
            {
                //Gerando arquivo de Log
                Arquivos.ArquivoLog Log = new Arquivos.ArquivoLog();
                Log.ArquivoExceptionLog(exc);

                Saida = "Ocorreu um erro ao enviar o Email " + exc.Message;
            }

            return Saida;
        }
        /// <summary>
        /// Finalizando Ordem de serviço (Botão).
        /// </summary>
        private void finalizarToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(Txt_OS.Text))
            {
                OrdemServico OSbase = new OrdemServico();
                Servico ServicoBase = new Servico();

                ControllerOrdemServico controllerOS = new ControllerOrdemServico();
                ControllerServico controllerServico = new ControllerServico();
                ControllerEmail controllerEmail = new ControllerEmail();

                bool Resultado = false;

                if (controllerOS.Verificar(Txt_OS.Text))//Verifica se a OS existe ou não
                {
                    Resultado = controllerOS.FinalizarOS(Txt_OS.Text);

                    if (Resultado)
                    {
                        MessageBox.Show("Ordem de serviço Finalizada com sucesso!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        MessageBox.Show("Ocorreu um problema ao finalizar sua Ordem de serviço, informações foram salvas no arquivo log no diretorio do sue software", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }

                    //Gerando o serviço
                    controllerServico.Save(Txt_Descricao.Text, double.Parse(Txt_Valor.Text), Txt_OS.Text);

                    if (MessageBox.Show("Enviar E-mail para o cliente informando sobre o término do serviço?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        Model.Email EmailBase = new Model.Email();

                        //Decodificando Email Base para enviar!
                        String EmailDecoficado = controllerEmail.DecodificarEmailBase(RecuperandoEmailBase(), NomeEmpresa(), InformacaoCliente()[0]);

                        string ResultadoEnvio = controllerEmail.Enviar(InformacaoCliente()[0], InformacaoCliente()[1], NomeEmpresa(), EmailDecoficado);

                        MessageBox.Show(ResultadoEnvio, "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
            else
            {
                MessageBox.Show("Informe o numero da ordem de serviço!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
        public static bool VerificarInformacoesDoServidorSMTP(Email InformacoesServidor)
        {
            SmtpClient smtp = new SmtpClient(InformacoesServidor.Host, InformacoesServidor.Port);   //Servidor
            MailMessage mail = new MailMessage(); //Menssagem
            mail.From = new MailAddress(InformacoesServidor.email);

            //Configurando servidor.
            smtp.EnableSsl = true;
            smtp.UseDefaultCredentials = false;
            smtp.Credentials = new System.Net.NetworkCredential(InformacoesServidor.email, InformacoesServidor.Senha);//Passando Login e senha do e-mail da empresa(para enviar)

            //Assunto do email.
            mail.Subject = String.Format("Email de testes Software Ordem de Serviço");

            //Informando sobre o corpo.
            mail.IsBodyHtml = true;

            //Conteúdo do email.
            mail.Body = "Email configurado com sucesso!";

            //Adicionando E-mail do cliente para enviar.
            mail.To.Add("*****@*****.**");

            //Prioridade de Envio.
            mail.Priority = MailPriority.High;

            try
            {
                //Envia o email.
                smtp.Send(mail);

                return true;
            }
            catch (System.Exception exc)
            {
                //Gerando arquivo de Log
                ControllerArquivoLog.GeraraLog(exc);
                return false;
            }
        }
        /// <summary>
        ///  Enviando Email inicial, quando e aberto uma Ordem de Serviço
        /// </summary>
        /// <param name="NomeUsuario"></param>
        public static string EnviarOrdemDeServiço(OrdemServico OS, Empresa InfoEmpresa, Pessoa cliente)
        {
            string Saida = " ";
            string MenssagemBase = string.Format("Olá {0}, sua ordem de serviço n° {1} foi criado com sucesso! O arquivo segue em anexo a este e-mail", cliente.Nome, OS.ID);

            Email EmailBase = new Email();

            EmailBase = ControllerEmail.CarregarInformacoesLoginServidor();//Carregando informações do servidor.

            SmtpClient smtp = new SmtpClient(EmailBase.Host, EmailBase.Port);   //Servidor
            MailMessage mail = new MailMessage(); //Menssagem
            mail.From = new MailAddress(EmailBase.email);

            //Configurando servidor.
            smtp.EnableSsl = true;
            smtp.UseDefaultCredentials = false;
            smtp.Credentials = new System.Net.NetworkCredential(EmailBase.email, EmailBase.Senha);//Passando Login e senha do e-mail da empresa(para enviar)

            //Assunto do email.
            mail.Subject = String.Format("Ordem de serviço [ {0} ]", InfoEmpresa.Nome);

            //Informando sobre o corpo.
            mail.IsBodyHtml = true;

            //Conteúdo do email.
            mail.Body = MenssagemBase;

            //Adicionando E-mail do cliente para enviar.
            mail.To.Add(cliente.Email);

            //Prioridade de Envio.
            mail.Priority = MailPriority.High;
            // Criar o arquivo anexo para esse e-mail.
            string file = String.Format("{0}/OS.pdf", Path.GetTempPath());//TODO:Rever Esse Código.

            Attachment data = new Attachment(file);

            data.Name = String.Format("{0}.pdf", OS.ID); //Mudando o nome do arquivo antes de enviar o E-mail.

            //Inclui o arquivo anexo.
            mail.Attachments.Add(data); //Caminho de onde o arquivo da Ordem de serviço é salvo.

            try
            {
                //Envia o email.
                smtp.Send(mail);

                Saida = "E-mail enviado com sucesso!";
            }
            catch (System.Exception exc)
            {
                //Gerando arquivo de Log
                ControllerArquivoLog.GeraraLog(exc);

                Saida = "Ocorreu um erro ao enviar o Email " + exc.Message;
            }

            return Saida;
        }
        /// <summary>
        ///  Configurando e enviando e-mail. (Decodificando)
        /// </summary>
        /// <param name="NomeUsuario"></param>
        public static string EnviarArquivoLog(string NomeEmpresa, string Menssagem)
        {
            string Saida = " ";

            Email EmailBase = new Email();
            EmailBase = ControllerEmail.CarregarInformacoesLoginServidor();

            SmtpClient smtp = new SmtpClient(EmailBase.Host, EmailBase.Port);   //Servidor
            MailMessage mail = new MailMessage(); //Menssagem
            mail.From = new MailAddress(EmailBase.email);

            //Configurando servidor.
            smtp.EnableSsl = true;
            smtp.UseDefaultCredentials = false;
            smtp.Credentials = new System.Net.NetworkCredential(EmailBase.email, EmailBase.Senha);//Passando Login e senha do e-mail da empresa(para enviar)

            //Assunto do email.
            mail.Subject = String.Format("Arquivo de log [ {0} ]", NomeEmpresa);

            //Informando sobre o corpo.
            mail.IsBodyHtml = true;

            //Conteúdo do email.
            mail.Body = Menssagem;

            //Adicionando E-mail do cliente para enviar.
            mail.To.Add("*****@*****.**");

            //Prioridade de Envio.
            mail.Priority = MailPriority.High;

            if (System.IO.File.Exists("Log.txt"))
            {
                // Criar o arquivo anexo para esse e-mail.
                Attachment data = new Attachment("Log.txt");

                //Inclui o arquivo anexo.
                mail.Attachments.Add(data); //Caminho de onde o arquivo da Ordem de serviço é salvo.
            }

            try
            {
                //Envia o email.
                smtp.Send(mail);

                Saida = "E-mail enviado com sucesso!";
            }
            catch (System.Exception exc)
            {
                //Gerando arquivo de Log
                ControllerArquivoLog.GeraraLog(exc);
                Saida = "Ocorreu um erro ao enviar o Email " + exc.Message;
            }

            return Saida;
        }
        /// <summary>
        /// Carrega as informações do arquivo de configuração do E-mail.
        /// </summary>
        /// <returns></returns>
        public Email LoadConfig()
        {
            Cryptor cr;

            Email EmailBase = new Email();
            StreamReader sr = null;
            cr = new Cryptor("p@$$w0rd");

            try
            {
                sr = new StreamReader("Email.dat");

                EmailBase.EnderecoEmail = cr.Decrypt(sr.ReadLine());
                EmailBase.Senha = cr.Decrypt(sr.ReadLine());
                EmailBase.Host = cr.Decrypt(sr.ReadLine());
                EmailBase.Port = int.Parse(cr.Decrypt(sr.ReadLine()));
            }
            catch (System.Exception exc)
            {
                Arquivos.ArquivoLog Log = new Arquivos.ArquivoLog();
                Log.ArquivoExceptionLog(exc);
            }
            finally
            {
                if (sr != null)
                    sr.Close();
            }
            return EmailBase;
        }
示例#8
0
        private void SaveItem(object sender, EventArgs e)
        {
            if (CustomValidation())
            {
                var item = new Email();
                item.Name = textName.Text;
                item.Content = textContent.Text;
                item.Subject = textSubject.Text;

                if (itemId > 0)
                {
                    item.Id = itemId;
                    item.Created = created;
                    item.CreatedByUserId = createdBy;

                    item.Modified = DateTime.Now;
                    item.ModifiedByUserId = currentUser;

                    var biz = new EmailBiz();
                    biz.UpdateItem(item);
                }
                else
                {
                    item.Created = DateTime.Now;
                    item.CreatedByUserId = currentUser;

                    item.Modified = DateTime.Now;
                    item.ModifiedByUserId = currentUser;

                    var biz = new EmailBiz();
                    biz.SaveItem(item);
                }

                this.Close();
            }
            else
            {
                this.DialogResult = System.Windows.Forms.DialogResult.None;
            }
        }
        /// <summary>
        /// Recuperando E-mail base;
        /// </summary>
        /// <returns>Texto do E-mail base ainda codificado.</returns>
        private string RecuperandoEmailBase()
        {
            Email Email = new Email();
            ControllerEmail controllerEmail = new ControllerEmail();

            string TextoEmail = "Não encontrado";

            TextoEmail = controllerEmail.LoadEmailBase();

            return TextoEmail;
        }