none
Não enviar e-mail vazio RRS feed

  • Pergunta

  • Bom dia!

    Estou com um problema em meu site, na hora de enviar e-mail ele envia e-mails vazios, já utilizei o required do HTML5 e já tentei algumas outras alternativas em js.

    Desconsiderar os nomes "testes"

    Segue meus cod:


    CLasse C#:

    public class EnviarEmail
    
    	{
    		public void Enviar(string emailRemetente, string emailReplicarPara, string emailDestinatario, string emailCopia, string emailCopiaOculta, string assunto, string conteudo)
    		{            
                MailMessage mail = new MailMessage();
                mail.To.Add(emailDestinatario);            
                mail.From = new MailAddress(emailRemetente, "Teste", System.Text.Encoding.UTF8);
                if (emailCopia != null && emailCopia.Trim() != "")
                    mail.CC.Add(emailCopia);
                mail.Subject = assunto;
                mail.SubjectEncoding = System.Text.Encoding.UTF8;
                mail.Body = conteudo;
                mail.BodyEncoding = System.Text.Encoding.UTF8;
                mail.IsBodyHtml = false;
                mail.Priority = MailPriority.High; //Prioridade do E-Mail
                SmtpClient client = new SmtpClient();  //Adicionando as credenciais do seu e-mail e senha:
                client.Credentials = new System.Net.NetworkCredential("teste@teste.com.br", "teste"); //Credencial requerida pelo provedor de e-mails
                client.Port = 587; // Esta porta é a utilizada pelo E-Mail para envio
                client.Host = "smtp.teste.com.br"; //Definindo o provedor que irá disparar o e-mail
                client.EnableSsl = false; //Gmail trabalha com Server Secured Layer
                client.Send(mail);
    		}
    	}

    Js:

      $("#btnEnviar").click(function () {
        $("#btnEnviar").unbind("click");
            var texto = $('#body').val()
                 + '||Seguem abaixo meus dados: '
                 + '||Nome: ' + $('#nome').val()
                 + '|Telefone: ' + $('#telefone').val()
                 + '|E-mail: ' + $('#remetente').val();
    
            var linhas = texto.replace(/\|/g, '\n');
    
            $('.conteudoEmail').val(linhas);
            $.ajax({
                type: 'POST',
                url: '/User/SendEmail',
           
                data: { 'emailRemetente': 'teste@teste.com.br', 'emailReplicarPara': 'teste@teste.com.br', 'emailDestinatario': 'teste@teste.com.br; teste@teste.com.br', 'emailCopia': $('#remetente').val(), 'emailCopiaOculta': 'teste@teste.com.br', 'assunto': 'Recebimento de Contato', 'conteudo': $('#body').val() },
                cache: false,
                success: function (json) {
                    if (json.sucesso == true){
                        jAlert('Sua mensagem foi enviada, em breve retornaremos o seu contato.', 'Aviso do Sistema', function (conf) {
                            if (conf) window.location.href = "/Home";
                        });
                    }
                },
                error: function (json) {
                    jAlert('O seguinte erro ocorreu: ' + json.erro + ', informe ao desenvolvedor!', 'Erro do Sistema');
                }
            });
    
    
    
    
    
    
        });


    Marco Brito Web Developer

    segunda-feira, 25 de abril de 2016 14:24

Respostas

  • Bom dia,

    Troque a maneira de validação para "IsNullOrWhiteSpace".

    public void Enviar(string emailRemetente, string emailReplicarPara, string emailDestinatario, string emailCopia, string emailCopiaOculta, string assunto, string conteudo)
    {
        if (string.IsNullOrWhiteSpace(emailDestinatario))
            return;
                
        MailMessage mail = new MailMessage();
        mail.To.Add(emailDestinatario);
        mail.From = new MailAddress(emailRemetente, "Teste", System.Text.Encoding.UTF8);
        if (!string.IsNullOrWhiteSpace(emailCopia))
            mail.CC.Add(emailCopia);
        mail.Subject = assunto;
        mail.SubjectEncoding = System.Text.Encoding.UTF8;
        mail.Body = conteudo;
        mail.BodyEncoding = System.Text.Encoding.UTF8;
        mail.IsBodyHtml = false;
        mail.Priority = MailPriority.High; //Prioridade do E-Mail
        SmtpClient client = new SmtpClient();  //Adicionando as credenciais do seu e-mail e senha:
        client.Credentials = new System.Net.NetworkCredential("teste@teste.com.br", "teste"); //Credencial requerida pelo provedor de e-mails
        client.Port = 587; // Esta porta é a utilizada pelo E-Mail para envio
        client.Host = "smtp.teste.com.br"; //Definindo o provedor que irá disparar o e-mail
        client.EnableSsl = false; //Gmail trabalha com Server Secured Layer
        client.Send(mail);
    }

    É importante ressaltar que seu método de envio de e-mail é "void" seria importante fazer o tratamento de retorno, notei que que você faz a requisição para "SendEmail" que por sua vez deve chamar o "Enviar". Não sei se é isso, se for seria importante tratar, inclusive tratar exceções "Exception".

    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    • Marcado como Resposta MarcoBritto terça-feira, 5 de julho de 2016 14:06
    segunda-feira, 25 de abril de 2016 14:53