O código do formulário de contato não está funcionando. Preciso de ajuda!

Estou usando o contato abaixo do código no WordPress criando shortcode. Quando envio o formulário, ele mostra uma mensagem de sucesso, mas não recebeu nenhum email na checkbox de input ou no spam. Alguém pode ajudar.

function contactform_func( $atts ) { $atts = shortcode_atts( array( 'to_email' => '', 'title' => 'Contact enquiry - '.get_bloginfo('url'), ), $atts ); $cform = "
"; $cerr = array(); if( isset($_POST['c_submit']) && $_POST['c_submit']=='Submit' ){ $name = trim( $_POST['c_name'] ); $email = trim( $_POST['c_email'] ); $phone = trim( $_POST['c_phone'] ); $website = trim( $_POST['c_website'] ); $comments = trim( $_POST['c_comments'] ); $captcha = trim( $_POST['c_captcha'] ); $captcha_cnf = trim( $_POST['c_captcha_confirm'] ); if( !$name ) $cerr['name'] = 'Please enter your name.'; if( ! filter_var($email, FILTER_VALIDATE_EMAIL) ) $cerr['email'] = 'Please enter a valid email.'; if( !$phone ) $cerr['phone'] = 'Please enter your phone number.'; if( !$comments ) $cerr['comments'] = 'Please enter your question / comments.'; if( !$captcha || (md5($captcha) != $captcha_cnf) ) $cerr['captcha'] = 'Please enter the correct answer.'; if( count($cerr) == 0 ){ $subject = $atts['title']; $headers = "From: ".$name." \r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; $message = '
Name: '.$name.'
Email: '.$email.'
Phone: '.$phone.'
Website: '.$website.'
Comments: '.$comments.'
'; mail( $atts['to_email'], $subject, $message, $headers); $cform .= '
Thank you! A representative will get back to you very shortly.
'; unset( $name, $email, $phone, $website, $comments, $captcha ); }else{ $cform .= '
'; $cform .= implode('
',$cerr); $cform .= '
'; } } $capNum1 = rand(1,4); $capNum2 = rand(1,5); $capSum = $capNum1 + $capNum2; $sumStr = $capNum1." + ".$capNum2 ." = "; $cform .= "

"; $cform .= "

$sumStr

"; $cform .= "

"; return $cform;} add_shortcode( 'contactform', 'contactform_func' );

Solutions Collecting From Web of "O código do formulário de contato não está funcionando. Preciso de ajuda!"

Copiado da minha Resposta para “Um plugin antigo auto-feito interrompeu o envio de correio” :

Muitos E-Mail-Hosters mudaram suas regras para evitar spam. Muitas vezes, os E-Mails que têm um nome de domínio em seu “from” -Tag e provenientes de um servidor com um domínio diferente são rejeitados. Então, meu palpite é, talvez os e-mails ainda sejam enviados, mas não recebidos.

Você pode verificar isso alterando esta linha:

 $headers = "From: ".$name." < " . strip_tags($email) . ">\r\n"; 

para algo assim:

 $my_domain = $_SERVER['HTTP_HOST']; $headers = 'From: orders@'.$my_domain."\r\n".'Reply-To: '.$senderEmail."\r\n"; 

e verifique se os e-mails são enviados e recebidos corretamente agora. (Ao definir o header de resposta ao header, o endereço correto é inserido ao clicar em “Responder” no Cliente de Correio.)

Apenas para garantir que a function mail() seja bem sucedida, tente alterar esta parte:

 $result = mail( $atts['to_email'], $subject, $message, $headers); if($result){ $cform .= '
Thank you! A representative will get back to you very shortly.
'; }

Então, se você ainda ver a mensagem de sucesso, você sabe que é outra coisa.