php email – cómo evitar que el correo termine en un buzón de spam

Tengo un formulario de contacto en mi sitio web, que realmente funciona: D El problema es que el correo electrónico termina en la carpeta de correo no deseado. He intentado hacer cosas con la sección del encabezado, pero parece que nada funciona.

Puede alguien ayudarme con esto?

Gracias

 array($name,$email,$message), 'validEmail' => array($email), 'validNumber' => array($phone), 'validAlpha' => array($name) ); $formcontent = "Name: $name \nE-Mail: $email \nPhone: $phone \nWebsite: $website \nMessage: $message \n"; $formcontent = wordwrap($formcontent, 70, "\n", true); $recipient = "thomas.teilmann@gmail.com"; $subject = "Contact Messenbrink.eu"; /*$mailheader = "From: $email \r\n";**/ $mailheader .= "Reply-To: $name \r\n"; $mailheader .= "Return-Path: $name \r\n"; $mailheader .= "Content-Type: text/plain\r\n"; $mailheader .= "Organization: Sender Organization\r\n"; $mailheader .= "MIME-Version: 1.0\r\n"; $mailheader .= "Content-type: text/plain; charset=iso-8859-1\r\n"; $mailheader .= "X-Priority: 3\r\n"; $mailheader .= "X-Mailer: PHP". phpversion() ."\r\n"; $mailheader .= "From: $name \r\n"; function sendMail() { global $formcontent, $recipient, $subject, $mailheader; mail($recipient, $subject, $formcontent, $mailheader); } # error messages $errorsMsgs = array( 'required' => 'Please fill out all required fields.', 'validEmail' => 'is an invalid email address.', 'validNumber' => 'is an invalid number.', 'validAlpha' => 'contains invalid characters. This field only accepts letters and spaces.' ); $errorMarkup = "

We found a few errors :-(

Please fix these errors and try again

    "; $errorMarkupEnd = "
"; $successMarkup = "

Success!

Your form was sent successfully.

"; $backMarkup = "Back to form"; # begin state $valid = true; # loop through fields of error types foreach ($validate as $type => $fields) { # loop through values of fields to be tested foreach ($fields as $value) { # throw error if value is required and not entered if ($type === 'required' && strlen($value) === 0) { $errorMarkup .= "
  • $errorsMsgs[$type]
  • "; $valid = false; break; } else if ( $type === 'validEmail' && !filter_var($value, FILTER_VALIDATE_EMAIL) || $type === 'validNumber' && !preg_match('/^[0-9 ]+$/', $value) || $type === 'validAlpha' && !preg_match('/^[a-zA-Z ]+$/', $value) ) { if (strlen($value) === 0) {break;} # skip check if value is not entered $errorMarkup .= "
  • \"$value\" $errorsMsgs[$type]
  • "; $valid = false; continue; } } } if ($valid) { sendMail(); $body = $successMarkup . $backMarkup; $title = "Form sent"; } else { $body = $errorMarkup . $errorMarkupEnd . $backMarkup; $title = "Form errors"; } # write html ouput echo "$titlebody{margin:100px;font:16px/1.5 sans-serif;color:#111}h1{font-size:32px;margin:0;font-weight:bold}h2{font-size:18px;margin:0 0 20px 0}ol,li{list-style-position:inside;padding-left:0;margin-left:0}$body"; ?>

    No tiene nada que ver con el código PHP, pero asegúrese de que el correo electrónico se envíe desde un dominio alojado en el servidor. Eso significa que sería una mala idea usar tu dirección de gmail para enviar a través de PHP. Cada correo electrónico que sale del servidor debe estar firmado y debe tener registros SPF

    Esto suele ser porque en el DNS no se ha configurado un registro SPF correcto. Esto se puede hacer fácilmente dependiendo del software que use. Si usa cPanel, este es un proceso de dos pasos.

    Algunos enlaces: http://www.emailquestions.com/help-desk/2418-why-do-my-own-emails-go-into-spam.html http://www.google.co.uk/search? sourceid = chrome & ie = UTF-8 & q = spf + registros http://www.techtalkpoint.com/articles/setting-up-spf-records-in-cpanel-whm-and-namecheap/

    Asegúrese de que la fuente del mensaje sea válida. Aparte de eso, no hay mucho que puedas hacer en PHP. El rest se debe a los contenidos de su mensaje, su servidor de correo y el filtro de spam del servidor receptor.

    Intente asegurarse de que los datos en sus encabezados coincidan con los que normalmente aparecerían en un mensaje normal. Por ejemplo, es mejor que su nombre de dominio From y Return Path concuerde con el servidor desde el que está enviando.

    Noto que solo usas \n como un delimitador de línea en el cuerpo. Debería ser \r\n independientemente del SO que esté utilizando.

    Idealmente, estudie RFC 2822 . Si no tiene tiempo para hacerlo, como mínimo, compare sus encabezados con otros correos electrónicos que considere válidos. Donde sea posible, haga coincidir el orden de los encabezados, incluso colocando el mismo número de líneas en blanco en los lugares apropiados.

    El correo no deseado no está filtrado por alguna configuración, se filtra por su elección de palabra y cómo se ve el mensaje y también qué tan conocida es la dirección de correo electrónico del remitente. Si desea evitar la lista de spam, debe redactarla de una manera que no suene spam.

    Mi única sugerencia sería que la dirección de correo electrónico sea la dirección de correo electrónico de la cuenta de correo real que está utilizando para enviar estos en lugar de la cuenta de correo electrónico del cliente. Su proveedor de correo electrónico puede pensar que están engañando si el correo electrónico proviene de su dirección de correo electrónico, pero no de un servidor en ese dominio.

    Puede insétele poner la dirección de correo electrónico del cliente en el cuerpo del correo electrónico para que sepa de quién se trata.

    Es probable que el smtp que se usa no sea válido.

    Si el formulario de contacto solo se utiliza para enviar correos electrónicos a una carpeta de correo, simplemente establecería una regla allí para no marcarlo como correo no deseado. O eso o realmente validar su smtp.

    Estaba teniendo un problema similar con Gmail, solo seleccioné el correo electrónico y configuré “No Spam” ahora todos los correos electrónicos enviados por mi servidor, cuando alguien usa el formulario de contacto en mi sitio termina en la carpeta Bandeja de entrada. Espero que esto ayude.