Problema con correo spam

Por que algunos correo los manda spam y otros sin spam, como se puede areglar esto con programación, tengo un codigo de manda email por con html pero lo quiero que lo mande sin spam.

Espero que alguien me pueda ayudar!
Ese problema generalmente es causado por el envio de correo masivo, si tu mandas muchos correos al mismo tiempo, sera considerado spam, ademas de que tiene mucho que ver quien resive el correo, generalmente las compañias tienen diferentes criterios para considerar spam o no un correo, independientemente del metodo que se aya usado para el envio, la mejor forma de evitar que tu correo sea consideraro no deceado es enviarlo por un servidor smtp autentificado.

Muchas compañias usan grandes bases de datos para verificar que no este en la lista negra la compañia o el servidor de origen del correo, entre esas bases de datos estan:

http://www.mail-abuse.com/
http://dsbl.org/

puedes verificar que tu hosting no este en alguns de esas listas, si lo esta muchos de tus correos seran rechazados por ser enviados de un servidor que esta en la lista negra.

o puedes pedirle a todos los que les envias correos que te agreguen como remitente seguro, asi ya no se iran al spam tus correos.

Tambien existen las lista de correo, comapñias encargadas de el envio de correo masivo, como http://elistas.net/. claro al hacer eso estaras proporcionando informacion personal a una compañia, primero deverias comunicarlo a tus usuarios si haceptan.
Hola.

Me voy a ser un poco mas explicativo, esoy creando una aplicacion de mandar un email cuando el cliente se registre, y se le manda un email con la enhorabuena o lo sentimos, el codigo que uso funciona perfectamente.

¿Que lo que hace el codigo?

El codigo lo que hace es mandar un html por email a una direccion web que introduce el cliente en el formulario.Pero lo que pasa que a veces lo manda spam y otras veces sin spam.

Te mando el codigo a ver que opinas.

Saludos.

serverdns escribió:Ese problema generalmente es causado por el envio de correo masivo, si tu mandas muchos correos al mismo tiempo, sera considerado spam, ademas de que tiene mucho que ver quien resive el correo, generalmente las compañias tienen diferentes criterios para considerar spam o no un correo, independientemente del metodo que se aya usado para el envio, la mejor forma de evitar que tu correo sea consideraro no deceado es enviarlo por un servidor smtp autentificado.

Muchas compañias usan grandes bases de datos para verificar que no este en la lista negra la compañia o el servidor de origen del correo, entre esas bases de datos estan:

http://www.mail-abuse.com/
http://dsbl.org/

puedes verificar que tu hosting no este en alguns de esas listas, si lo esta muchos de tus correos seran rechazados por ser enviados de un servidor que esta en la lista negra.

o puedes pedirle a todos los que les envias correos que te agreguen como remitente seguro, asi ya no se iran al spam tus correos.

Tambien existen las lista de correo, comapñias encargadas de el envio de correo masivo, como http://elistas.net/. claro al hacer eso estaras proporcionando informacion personal a una compañia, primero deverias comunicarlo a tus usuarios si haceptan.
HOLA

te refieres que cuando llega el correo lo manda a la bandeja del no deseado???

eso me pasaba a mi tambien
y lo solucionè mmmm
como... no me acuerdo jajajaja

no, es broma, lo que hice fuè poner, el el codigo un correo valido por mi,

mira te pego el codigo aqui para que te enteres como va ok???

<form action="envio2.php" method="post" name="frm">
<div id="caja">
<table>
<tr>
<td class="nombres"></td>
<td class="campos"><input type="hidden" name="email" value="[correo eliminado]"/></td>
</tr>
<tr>
<td class="nombres">Nombre:</td>
<td class="campos"><input type="text" name="nombre" size="35"/></td>
</tr>
<tr>
<td class="nombres">Ciudad:</td>
<td class="campos"><input type="text" name="poblacion" size="35" /></td>
</tr>
<tr>
<td class="nombres">Email:</td>
<td class="campos"><input type="text" name="email2" size="35" /></td>
</tr>
</table>
<div>


Comentarios:</p>
<textarea cols="35" rows="4" name="texto"></textarea>


<input type="button" value="Enviar" onclick="valida_envia()" />
<input type="reset" name="reset" value="Borrar" />



en rojo, puse un campo oculto con un correo
entonces, el codigo php, toma ese correo como del cliente
y como ese mail yo lo tengo habilitado, pues ya no me llegan al no deseado

me explico????
Entiendo perfectamente lo que tratas de hacer, El Problema como te vuelvo ha decir puede ser causado por una mala extructuracion de las cabeceras de la funcion mail de php, pero general mente no es problema del codigo, el problema son los servidores a los que envias los correos, el problema generalmente es independiente de ti, y no puedes solucionarlo porque no esta en tu manos, los criterios de los servidores de las grandes empresas generalmente son muy Especificos como yahoo, hotmail o gmail, ya que tu no controlas dichos servidores.

Generalmente Hotmail es el mas extricto en cuanto a correo no deceado o spam, sus criterios son muy especificos y generalmente Solo tus contactos son lo que no se van ha la badeja de spam, si te fijas en muchas paginas cuando te registras te piden que no uses cuantas de hotmail por ese motivo.

Nunca estaras 100% seguro de que tus correos no sean considerados spam, como te digo son cosas que no puedes evitar, porque esta fuera de tu alcance, pero si puedes optimizar tus formularios para que la mayor cantidad de correos llegen bien.

Como te lo mencione anteriormente, la mejor opccion es usar un servidor smtp autentificado para enviar tus correos, o usa Sendmail, si usas un servidor de paga siempre tienen esa opccion, es un servidor mas seguro para el envio de correos, pero si usas un servidor gratuito tienen muchas restricciones.

Lo Que Dice Yaneth que hizo para solucionar el problema es simplemente lo que yo te comente, agregar a su lista de remitentes seguros el correo que usa para enviarse los correos, simplemente creo un filtro que le indica al servidor que todos los correos de ese remitente son seguro y no son spam.
Yo pensaba que era el codigo de mandarme spam porque me funciona bien, hay veces que envia spam y otras veces no spam, pero como tu dices que es un problema de servidores, pero lo que me pasa con un correo que tengo en arsys.es, los correos de arsys biene con una gran protecion y no recibe correos spam.

Entonces esto seria un problema de comunicacion con el cliente.



Muchisimas gracias.
Puedes estructurar mejor tus cabeceras de mail para que la mayor cantidad de servidores posibles no lo consideren spam, aqui un ejemplo de una cabecera de mail bien estructurada.

// Inicio de las Cabeceras para la funcion mail();
// Version
$headers .= "MIME-Version: 1.0\n";
// Tipo De Codificacion , En Este caso Preparado para html
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
// Correo Y Nombre del Remitente
$headers .= "From: Mi cliente <[correo eliminado]>\n";
// Nombre Y Cuenta de Correo Del Destinatario
$headers .= "To: Yo <[correo eliminado]>\n";
// Cuenta De Correo Para Responder, aparece como Responder a
$headers .= "Reply-To: [correo eliminado]\n";
// Si El Destinatario no Existe, el correo es regresado a esta cuenta.
$headers .= "Return-path: [correo eliminado]\r\n";
// Prioridad Del correo, 1= alta
$headers .= "X-Priority: 1\n";
$headers .= "X-MSMail-Priority: High\n";
// Nombre del Servidor Que envia el correo, Generalmente este se agrega solo automaticamente
$headers .= "X-Mailer: mailmx.us Server";
// Fin De Las Cabeceras

Estas son unas cabeceras de la funcion mail bien extructuradas que evita que muchos correos sean considerados spam, Existen mas posibilidades, como Destinatarios Ocultos CC y Las copias de correo BCC.
Hola.

Muchas gracias por su tiempo y por su respuesta, mañana lo voy a probar haber si no me manda en spam gracias a esta estructuras de la cabezera email.

Yo no conocia tantas cabeceras.

Mañana te dire si realmente me ha funcionado.

Gracias.

Saludos.
Hola.

He estado probando tu codigo con las cabeceras pero me hace lo mismo, me lo manda en Spam cuando renvia desde la zona privada al cliente que introduzco en el email y he echale un vistazo a ver que opinas del codigo:

$destinatario_informativo = "[correo eliminado]";   
$cuerpobaja = "<html>
<head> 
   <title></title> 
</head> 
<body> 

<table>
  <tr>
    <td>[img]http://www.posicionempresarial.es/jpg/logo_empresa_posicionempresarial.es.jpg[/img]</td>
  </tr>
  </table> 


<font face=Verdana, Arial, Helvetica, sans-serif size='2'>
Este cliente ha sido su enlaces sponsors aprobado quedando totalmente prohibido borrar este registro.

"."ID: ".$_POST[id]."
"."NOMBRE: ".$_POST[nombre]."
"."APELLIDOS: ".$_POST[apellidos]."
"."DIRECCIÓN: ".$_POST[direccion]."
"."PROVINCIA: ".$_POST[provincia]."
"."LOCALIDAD: ".$_POST[localidad]."
"."TFNO: ".$_POST[tfno]."
"."MOVIL: ".$_POST[movil]."
"."EMAIL: ".$_POST[email]."
"."CATEGORIAS: ".$_POST[categorias]."
"."TITULO DE LA EMPRESA: ".$_POST[titulo]."
"."URL: ".$_POST[url]."
"."DESCRPCION DE LA EMPRESA: ".$_POST[descripcion]."


Atentamente

<hr />Directorio de empresas de Posicionempresarial.es
[url='http://www.posicionempresarial.es/']www.posicionempresarial.es[/url]
[email='[correo eliminado]'][correo eliminado][/email]

</td></body> 
</html>"; 
$headers_informativo = "MIME-Version: 1.0\r\n";   
$headers_informativo .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
$headers_informativo .= "From:".$_POST[id].""; 
$headers_informativo .= "X-Priority: 1\n"; 
$headers_informativo .= "X-MSMail-Priority: High\n"; 
// Nombre del Servidor Que envia el correo, Generalmente este se agrega solo automaticamente 
$headers_informativo .= "X-Mailer: mailmx.us Server"; 
// Fin De Las Cabeceras 
mail($destinatario_informativo,"Cliente aprobado sponsors",$cuerpobaja,$headers_informativo);	

A ver que opinas saludos.

Gracias.


serverdns escribió:Puedes estructurar mejor tus cabeceras de mail para que la mayor cantidad de servidores posibles no lo consideren spam, aqui un ejemplo de una cabecera de mail bien estructurada.

// Inicio de las Cabeceras para la funcion mail();
// Version
$headers .= "MIME-Version: 1.0\n";
// Tipo De Codificacion , En Este caso Preparado para html
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
// Correo Y Nombre del Remitente
$headers .= "From: Mi cliente <[correo eliminado]>\n";
// Nombre Y Cuenta de Correo Del Destinatario
$headers .= "To: Yo <[correo eliminado]>\n";
// Cuenta De Correo Para Responder, aparece como Responder a
$headers .= "Reply-To: [correo eliminado]\n";
// Si El Destinatario no Existe, el correo es regresado a esta cuenta.
$headers .= "Return-path: [correo eliminado]\r\n";
// Prioridad Del correo, 1= alta
$headers .= "X-Priority: 1\n";
$headers .= "X-MSMail-Priority: High\n";
// Nombre del Servidor Que envia el correo, Generalmente este se agrega solo automaticamente
$headers .= "X-Mailer: mailmx.us Server";
// Fin De Las Cabeceras

Estas son unas cabeceras de la funcion mail bien extructuradas que evita que muchos correos sean considerados spam, Existen mas posibilidades, como Destinatarios Ocultos CC y Las copias de correo BCC.
Es porque sigue estando mal extructuradas tus cabeceras de mail, no respetaste los parametros que te indique en las cebeceras, quitaste una de las mas importantes la de To, a quien va dirigido el correo.

$headers_informativo .= "From:".$_POST.""; <------- Esta cabecera esta incorrecta, Debe ser asi:

$headers_informativo .= "From: nombre del que lo manda <mail del que lo manda>";

ademas agrega la cabecera de To.
Te he mandado un mensaje privado con el codigo completo para que te hagas una idea, no lo queria postear porque es un codigo muy largo y no me deja enviar codigos tan largos.

Ya publicare una vez que tenga la solucion.

Saludos.

serverdns escribió:Es porque sigue estando mal extructuradas tus cabeceras de mail, no respetaste los parametros que te indique en las cebeceras, quitaste una de las mas importantes la de To, a quien va dirigido el correo.

$headers_informativo .= "From:".$_POST.""; <------- Esta cabecera esta incorrecta, Debe ser asi:

$headers_informativo .= "From: nombre del que lo manda <mail del que lo manda>";

ademas agrega la cabecera de To.
Bueno, Revisando tu codigo quie me mandaste por privado, Esta muy desordenado, lo cual dificulta su lectura. Ademas de que usas la palabra "sponsor" con esto practicamente le estad diciendo a los servidores que es spam lo que estas enviando, te suguiero cambies esa palabra por otra similar.

En el privado dices que a donde envias el correo es un id? eso es imposible no puedes enviar un correo a un id porque generalmente es un numero, lo cual no es una direccion de correo valida.

No se que parte de las cebeceras no entiendes, Manejas varias variables, entre ellas: $_POST $_POST y $_POST[correo eliminado]\n";
// Si El Destinatario no Existe, el correo es regresado a esta cuenta.
$headers .= "Return-path: [correo eliminado]\r\n";
// Prioridad Del correo, 1= alta
$headers .= "X-Priority: 1\n";
$headers .= "X-MSMail-Priority: High\n";
// Nombre del Servidor Que envia el correo, Generalmente este se agrega solo automaticamente
$headers .= "X-Mailer: posicionempresarial.es Server";
// Fin De Las Cabeceras

si te das cuenta las cebeceras fueron completadas con las variables que tu manejas independientemente de su valor.
Hola.

A ver si este POST me puedo explicar mejor, vamos a ver lo que te envie es una parte de una aplicacion de una zona privada que la controla el administrador, entonces en esa zona privada cuando le dices que al boton si que es uno que tengo colocado en esa zona privada, el codigo que te mande por mensaje privado, son dos codigo de email uno de ellos lo recibe el cliente y lo manda en html, quiero decir con su texto y su logotipo de empresa, por eso cuando encuentra el id que lo seleciono atraves de un desplegable extrae todos los datos id,nombre,apellidos,email pues la variable email es la que uso para el renvio del email al cliente y que el remitente del email es posicionempresarial.

Hasta ahi espero que te hayas enterado.

Y el otro codigo que ta mande es el que recibe el administrador en una cuenta de correo que tiene asignada, y todos los datos id,nombre,apellidos,email... lo recibe en un email en html con todos los datos extraidos de la zona privada.

Este email para que te hagas una idea es un email de ficha del cliente para el administrador.

Espero que ahora sepas por donde voy.

De todos los modos gracias.

Saludos.




serverdns escribió:Bueno, Revisando tu codigo quie me mandaste por privado, Esta muy desordenado, lo cual dificulta su lectura. Ademas de que usas la palabra "sponsor" con esto practicamente le estad diciendo a los servidores que es spam lo que estas enviando, te suguiero cambies esa palabra por otra similar.

En el privado dices que a donde envias el correo es un id? eso es imposible no puedes enviar un correo a un id porque generalmente es un numero, lo cual no es una direccion de correo valida.

No se que parte de las cebeceras no entiendes, Manejas varias variables, entre ellas: $_POST $_POST y $_POST[correo eliminado]\n";
// Si El Destinatario no Existe, el correo es regresado a esta cuenta.
$headers .= "Return-path: [correo eliminado]\r\n";
// Prioridad Del correo, 1= alta
$headers .= "X-Priority: 1\n";
$headers .= "X-MSMail-Priority: High\n";
// Nombre del Servidor Que envia el correo, Generalmente este se agrega solo automaticamente
$headers .= "X-Mailer: posicionempresarial.es Server";
// Fin De Las Cabeceras

si te das cuenta las cebeceras fueron completadas con las variables que tu manejas independientemente de su valor.
Definitivamente no te entiendo, ya te llene completamente las cabeceras, no importa que tipo de correo envies, ni para que sea el correo, ni de donde obtengas los datos los datos, tu solo necesitas 5 datos para enviar un correo con todas las cebeceras llenas:

1) Nombre Del Remitente
2) Correo Del Remitente
3) Nombre del Destinatario
4) Correo del Destinatario.
5) Mensaje.

Con lo que dices del id que extraes datos, Extraes el email, nombre y apeidos, no necesitas mas para enviar los correos con todas las cabeceras llenas, llenando la tabla anterios con tus datos:

Correo del Cliente:

1) Posicion Empresarial.
2) [correo eliminado] <--- Cualquier correo que tu uses.
3) nombre y apeidos extraidos de la base de datos con el id
4) Correo Extraido de la Base de datos
5) Mensaje Para el Cliente en html

Para el Administrador

1) Posicion Empresarial.
2) [correo eliminado] <--- Cualquier correo que tu uses.
3) Nombre Del Administrador <--- Aqui tu nombre
4) [correo eliminado]
5) Mensaje Para el Administrador en html

Ahora solo tienes que sustituir por tus variables o valores en las cabeceras que te pase al principio.

Eso que dices que esta en una zona privada y del boton no importa en este punto, porque cuando llegas ha este archivo ya tienes los datos necesarios para enbiar ambos correos, asi que no importa si es privado o publico.

Si con esto no eres capaz de comprender como se extructuran las cabeceras no se de que forma puedas entenderlo.
Hola.

Estoy mirando la manera de explicarlo pero veo que no me entienes haber si por esta la entiendes:

El cliente recibe un correo cuando haya sido aprobado:

1.Remitente tiene que aparecer Posicionempresarial.es
2.Asunto debe aparecer Enlace exponsor aprobado
3.Cuerpo del mensaje aprobado.

El administrador recibe un correo:

1.Remitente tiene que aparecer id del cliente
2.Asunto debe aparecer Cliente aprobados sponsors
3.Cuerpo del mensaje aprobado.

Es asi como deber estar, y no entiendo mucho lo que me quieres explicar aqui como debo colocar estas cabeceras en mi codigo:

Correo del Cliente:

1) Posicion Empresarial.
2) [correo eliminado] <--- Cualquier correo que tu uses.
3) nombre y apeidos extraidos de la base de datos con el id
4) Correo Extraido de la Base de datos
5) Mensaje Para el Cliente en html

Para el Administrador

1) Posicion Empresarial.
2) [correo eliminado] <--- Cualquier correo que tu uses.
3) Nombre Del Administrador <--- Aqui tu nombre
4) [correo eliminado]
5) Mensaje Para el Administrador en html

Saludos.