My web site is not sending contact mail, it displays the error <div class="alert_box error"><i class="fa fa-exclamation-triangle"></i><p>undefined!</p></div>, but not even the JS is set to appear is message. There is any error on my code? could you tell me what did i wrong?
HTML:
<form id="contact_form2" class="contact_form var2">
            <ul>
              <li>
                <input type="text" name="cf_name" placeholder="Nome">
              </li>
              <li>
                <input type="text" name="cf_subject" placeholder="Assunto">
              </li>
              <li>
                <textarea name="cf_message" placeholder="Mensagem"></textarea>
              </li>
            </ul>
            <button class="button type1"><span><span>Enviar</span><span>Enviar</span></span></button>
          </form>
PHP:
<?php 
$user_email = "marketing@fontlife.com.br";
$mail = array(
    "name" => htmlspecialchars($_POST['cf_name']),
    "email" => htmlspecialchars($_POST['cf_email']),
    "subject" => htmlspecialchars($_POST['cf_subject']),
    "message" => htmlspecialchars($_POST['cf_message'])
);
function validate($arr){
    return !empty($arr['name']) && strlen($arr['message']) > 20 && filter_var($arr['email'],FILTER_VALIDATE_EMAIL);
}
if(validate($mail)){
    echo mail($user_email, $mail['subject'], 
        "Name : {$mail['name']}\n" 
        ."E-mail : {$mail['email']}\n"
        ."Message : {$mail['message']}" 
    );
}
?>
JS:
($('#contact_form2').length){
        var cf = $('#contact_form2');
        cf.append('<div class="message_container2"></div>');
        cf.on("submit",function(event){
            var self = $(this),text;
            var request = $.ajax({
                url:"bat/mail.php",
                type : "post",
                data : self.serialize()
            });
            request.then(function(data){
                if(data == "1"){
                    text = "Sua mensagem foi enviada com sucesso!";
                    cf.find('input:not([type="submit"]),textarea').val('');
                    $('.message_container2').html('<div class="alert_box success"><i class="fa fa-smile-o"></i><p>'+text+'</p></div>')
                        .delay(150)
                        .slideDown(300)
                        .delay(4000)
                        .slideUp(300,function(){
                            $(this).html("");
                        });
                }
                else{
                    if(cf.find('textarea').val().length < 20){
                        text = "Sua mensagem deve conter no mínimo 20 caracteres!"
                    }
                    if(cf.find('input').val() == ""){
                        text = "Todos os campos devem ser preenchidos!";
                    }
                    $('.message_container2').html('<div class="alert_box error"><i class="fa fa-exclamation-triangle"></i><p>'+text+'</p></div>')
                        .delay(150)
                        .slideDown(300)
                        .delay(4000)
                        .slideUp(300,function(){
                            $(this).html("");
                        });
                }
            },function(){
                $('.message_container2').html('<div class="alert_box error"><i class="fa fa-exclamation-triangle"></i><p>Falha na conexão com o servidor!</p></div>')
                        .delay(150)
                        .slideDown(300)
                        .delay(4000)
                        .slideUp(300,function(){
                            $(this).html("");
                        });
            });
            event.preventDefault();
        });
    }
that is the page.
 
    