formulario - ¿Cómo evito que los correos enviados a través de PHP mail() vayan a correo no deseado?
enviar formulario a correo php (5)
Debes agregar un encabezado de aguja:
Código de muestra :
$headers = "From: [email protected]/r/n";
$headers .= "Reply-To: [email protected]/r/n";
$headers .= "Return-Path: [email protected]/r/n";
$headers .= "CC: [email protected]/r/n";
$headers .= "BCC: [email protected]/r/n";
if ( mail($to,$subject,$message,$headers) ) {
echo "The email has been sent!";
} else {
echo "The email has failed!";
}
?>
Estoy usando la función de correo de PHP () para enviar correos electrónicos (el proceso de sendmail se está ejecutando). Pero todos los correos van a correo no deseado (en el caso de Gmail). He intentado muchos trucos que encontré en la red pero ninguno funciona, por favor cuénteme sobre cualquier truco seguro.
No hay un truco seguro. Debes explorar las razones por las que tus correos están clasificados como spam. SpamAssassin tiene una página que describe algunos consejos para que los remitentes legítimos eviten los falsos positivos . Consulte también Horror de codificación: por lo que le gustaría enviar un correo electrónico (a través del código)
Pruebe la biblioteca PHP Mailer .
O envíe el correo a través del filtro SMTP antes de enviarlo.
También trate de dar todos los detalles como FROM
, return-path
.
$fromMail = ''set your from mail'';
$boundary = str_replace(" ", "", date(''l jS /of F Y h i s A''));
$subjectMail = "New design submitted by " . $userDisplayName;
$contentHtml = ''<div>Dear Admin<br /><br />The following design is submitted by ''. $userName .''.<br /><br /><a href="''.$sdLink.''"><b>Click here</b></a> to check the design.</div>'';
$contentHtml .= ''<div><a href="''.$imageUrl.''"><img src="''.$imageUrl.''" width="250" height="95" border="0" alt="my picture"></a></div>'';
$contentHtml .= ''<div>Name : ''.$name.''<br />Description : ''. $description .''</div>'';
$headersMail = '''';
$headersMail .= ''From: '' . $fromMail . "/r/n" . ''Reply-To: '' . $fromMail . "/r/n";
$headersMail .= ''Return-Path: '' . $fromMail . "/r/n";
$headersMail .= ''MIME-Version: 1.0'' . "/r/n";
$headersMail .= "Content-Type: multipart/alternative; boundary = /"" . $boundary . "/"/r/n/r/n";
$headersMail .= ''--'' . $boundary . "/r/n";
$headersMail .= ''Content-Type: text/html; charset=ISO-8859-1'' . "/r/n";
$headersMail .= ''Content-Transfer-Encoding: base64'' . "/r/n/r/n";
$headersMail .= rtrim(chunk_split(base64_encode($contentHtml)));
try {
if (mail($toMail, $subjectMail, "", $headersMail)) {
$status = ''success'';
$msg = ''Mail sent successfully.'';
} else {
$status = ''failed'';
$msg = ''Unable to send mail.'';
}
} catch(Exception $e) {
$msg = $e->getMessage();
}
Esto funciona bien para mí. Incluye correo con imagen y un enlace, y funciona para todo tipo de identificaciones de correo. La clave es usar todo el encabezado perfectamente.
Si lo está probando desde localhost, configure el siguiente antes de verificar:
Cómo configurar el correo enviado desde localhost xampp:
comente todo en
D:/xampp/sendmail/sendmail.ini
y mencione lo siguiente debajo[enviar correo]
smtp_server = smtp.gmail.com smtp_port = 587 error_logfile = error.log debug_logfile = debug.log nombre_usuario_auth = [email protected] contraseña_auth = su-contraseña-de-correo [email protected]
En
D:/xampp/php/php.ini
a. Debajo[función de correo]
SMTP = smtp.gmail.com smtp_port = 587
segundo. establecer sendmail_from = [email protected]
c. uncomment sendmail_path = "/" D: / xamp / sendmail / sendmail.exe / "-t" Por lo tanto, debe verse como a continuación
sendmail_path = "/"D:/xamp/sendmail/sendmail.exe/" -t"
re. comment sendmail_path = "D: / xamp / mailtodisk / mailtodisk.exe" Por lo tanto, debe verse como a continuación
;sendmail_path="D:/xamp/mailtodisk/mailtodisk.exe"
mi. mail.add_x_header=Off
<?php
$subject = "this is a subject";
$message = "testing a message";
$headers .= "Reply-To: The Sender <[email protected]>/r/n";
$headers .= "Return-Path: The Sender <[email protected]>/r/n";
$headers .= "From: The Sender <[email protected]>/r/n";
$headers .= "Organization: Sender Organization/r/n";
$headers .= "MIME-Version: 1.0/r/n";
$headers .= "Content-type: text/plain; charset=iso-8859-1/r/n";
$headers .= "X-Priority: 3/r/n";
$headers .= "X-Mailer: PHP". phpversion() ."/r/n" ;
mail("[email protected]", $subject, $message, $headers);
?>