Foros del Web » Programando para Internet » PHP »

Mail html para hotmail o yahoo?

Estas en el tema de Mail html para hotmail o yahoo? en el foro de PHP en Foros del Web. Cómo puedo hacer para enviar una página html por mail para que se vea en correos web como hotmail o yaho?, Con html puede hacer ...
  #1 (permalink)  
Antiguo 22/11/2002, 12:00
Avatar de hucasys  
Fecha de Ingreso: noviembre-2001
Ubicación: Bastante buena...
Mensajes: 816
Antigüedad: 23 años
Puntos: 3
Mail html para hotmail o yahoo?

Cómo puedo hacer para enviar una página html por mail para que se vea en correos web como hotmail o yaho?, Con html puede hacer que se vea en outlok, pero no en hotmail.

Es posible con php?
  #2 (permalink)  
Antiguo 22/11/2002, 12:11
Avatar de joseisrael  
Fecha de Ingreso: noviembre-2002
Ubicación: Maracay, Edo. Aragua
Mensajes: 221
Antigüedad: 22 años
Puntos: 1
Exclamación Reforzando la Pregunta

Saludos.

Utilizando la función mail() de PHP podemos enviar emails en formato html.

La cosa es que cuando uno envia un mail utilizando por ejemplo un for o un while, a las cuentas de sean de hotmail o yahoo no llegan nunca.

La verdad no he descubierto el porque de esta situación y hasta los momentos nadie me lo ha podido explicar claramente.

Algunos dicen que es problema de servidor que esta enviando, otros que en la forma como se contruye la función mail(), pero al final.......

Por qué los recibo con cualquier cuenta, ,menos con hotmail o yahoo ????

Aún es un misterio para mi.

Ojala y venga alguién y nos muestre la luz.....jejejeej

Gracias
  #3 (permalink)  
Antiguo 23/11/2002, 18:19
Avatar de Kernellover  
Fecha de Ingreso: noviembre-2002
Ubicación: Perdido
Mensajes: 251
Antigüedad: 22 años
Puntos: 0
Me esperaba una respuesta pero por lo visto nadie lo sabe.

Hace tiempo me encontré con el mismo problema, pero no lo consegí resolver. Por suerte era para una página de caracter personal sobre la .electrónica
  #4 (permalink)  
Antiguo 23/11/2002, 18:32
 
Fecha de Ingreso: noviembre-2002
Mensajes: 9
Antigüedad: 22 años
Puntos: 0
Dices que el problema se te plantea cuando haces un mail con un bucle...Bueno, la verdad es que no sé la razón pero...podría ser posible que la función mail no pudiera hacer el envío a la primera debido a saturación de hotmail o yahoo y que sea necesario intentarlo varias veces, dejando un tiempo de espera entre ellas.
Es sólo una idea. Si te funciona me lo cuentas y aprendemos los dos.

Un saludo.
  #5 (permalink)  
Antiguo 23/11/2002, 21:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
El problema parece estar en las cabeceras y los registros MX del servidor de mail q se use ... y los filtros de Spam de Hotmail y servicios de mail similares ...

Con respecto a las cabeceras .. cabeceras tipo:
"X-Mailer: blablabla\n"

donde blablabla es un cliente correo falso .. Hotmail y demas .. suele identificar ese mail como correo "masivo" (Spam) ...

Lo ideal es usar algo com MS Outlook .. o alguno "conocido" (editen las propiedades de un e-mail y vean las cabeceras del X-mailer por ejemplo).

Y lo de los registros MX .. pues solo lo se de oidas .. pero viene a ser como el DNS pero para mail ...(si me equivoco me corrigen).

Un saludo,

pd: hace tiempo .. alguien en el foro preguntó lo mismo .. El mail le llegaba pero le caia al la carpeta "spam" del Hotmail .. la solución fue esa del X-mailer como cabeceras ..
  #6 (permalink)  
Antiguo 24/11/2002, 17:45
Avatar de execon  
Fecha de Ingreso: enero-2002
Ubicación: Temuco
Mensajes: 179
Antigüedad: 22 años, 10 meses
Puntos: 0
Hace Mucho tiempo yo tenia el mismo problema, logré solucionarlo, pero lamentablemente no estoy en mi trabajo ahora, si quieren puedo enviar la solución a quien me contacte o la puedo postear mañana, es Domingo, no es día de trabajo

Saludoz a todos.
__________________
----------------------------------
APP Developer
[email protected]
----------------------------------
  #7 (permalink)  
Antiguo 24/11/2002, 20:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
execon .. si puedes mejor postea la solucion . .evita que este mensaje se convierta en un:

"enviamela a mi" .. y "ami tambien" "seria mucha molestia que me lo enviaran?" .. y bla bla bla bla ..

La verdad q si se usara el buscador de forosdelweb ... algo saldria sobre el tema .. Porque recuerdo q se hablo de lo mismo q aquí y se llegó a una solución ..

Un saludo,
  #8 (permalink)  
Antiguo 25/11/2002, 05:56
Avatar de joseisrael  
Fecha de Ingreso: noviembre-2002
Ubicación: Maracay, Edo. Aragua
Mensajes: 221
Antigüedad: 22 años
Puntos: 1
A prueba Pronto

Saludos.

Definitivamente Cluster estoy deacuerdo contigo.

Este tema fue discutido hace tiempo, pero la solución me la perdi.

De todas formas dentro de poco enviare un boletín a mis usuarios, y modificare las cabeceras según tu consejo.

Posteare los resultados aquí mismo.

Gracias
  #9 (permalink)  
Antiguo 25/11/2002, 14:37
Avatar de execon  
Fecha de Ingreso: enero-2002
Ubicación: Temuco
Mensajes: 179
Antigüedad: 22 años, 10 meses
Puntos: 0
Yo dije que la solución la tenia, pero ayer era domingo y no trabajo los domingos, mucho menos en las tardes; tb. dije que podian pedirla o esperar a que yo la posteara hoy.

Y aki está...


echo "enviando";
$BaseUsr=mysql_connect("","","");
mysql_select_db("mallmirage",$BaseUsr);
$SQLregistro=mysql_query("SELECT * FROM regusers",$BaseUsr);


$mails_enviados=0;
while ($Registro=mysql_fetch_array($SQLregistro)) {
$Contacto_CorreoElectronico=$Registro["email"];
$NombreUser=$Registro["nombre"];

$Mensaje = "
<html>
<head>
<title>Mall Mirage</title>
<link rel=stylesheet href=http://www.mallmirage.cl/mallmirage-styles.css type=text/css>
</head>

<body bgcolor=#CCCCFF text=#000000 leftmargin=2 topmargin=2 marginwidth=2 marginheight=2 background=http://www.mallmirage.cl/images/logomall.gif link=#000066>
Todo el Contenido html aki...
</body></html>
";

$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: Mall Mirage <[email protected]>\r\n";
$headers .= "Reply-To: [email protected]\r\n";
$headers .= "X-Mailer: PHP/" . phpversion();

if (mail($Contacto_CorreoElectronico, "Novedades Mall Mirage.", $Mensaje,$headers))
{
$mails_enviados=$mails_enviados+1;
}
else { echo "algunas direcciones no recibieron el correo"; }
}
echo "Se enviaron ".$mails_enviados." mails a ".$mails_enviados." usuarios registrados.";



envío correo a mails ingresados en una base de datos de usuarios registrados.

Crfeo que el código está más que claro.
Me funcionó correctamente para mails leidos con Outlook, yahoo, Hotmail, uebimiau (webmail). Que son las plataformas de correo donde me interesaba testear.

Saludoz a todos,

__________________
----------------------------------
APP Developer
[email protected]
----------------------------------
  #10 (permalink)  
Antiguo 25/11/2002, 15:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Ok,execon ..

Pero la pregunta es: ¿Has probado a enviar e-mail con esas cabeceras (sobre todo la de X-Mailer: con la version de PHP .. ) a una cuenta de correo Hotmail/yahoo .. ? llega? .. llega y es marcado como "spam" o correo masivo? ..

Un saludo,
  #11 (permalink)  
Antiguo 25/11/2002, 16:02
Avatar de execon  
Fecha de Ingreso: enero-2002
Ubicación: Temuco
Mensajes: 179
Antigüedad: 22 años, 10 meses
Puntos: 0
Es Marcado como correo masivo, llega como un correo común y silvestre, al menos a mi me llegaban asi, y a la gente que probó el sistema tb.
__________________
----------------------------------
APP Developer
[email protected]
----------------------------------
  #12 (permalink)  
Antiguo 25/11/2002, 16:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
execon ..

A eso me referia .. que si usas un X-mailer tipo MS Outlook o algun cliente de correo "conocido" .. pasaría tus mails como correo standar a traves de los filtros anti-spam de Hotmail y similares ...

(edita las propiedades de un mail que generes con Outlook y mira su X-Mailer ..)

Tambien "dicen" q establecer las prioridades (no recuerdo la cabecera . pero si editan cuanquier correo lo veran ) .. tambien ayuda a pasar esos "filtros anti-spam" mejor.

Un saludo,
  #13 (permalink)  
Antiguo 25/11/2002, 22:24
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 22 años, 6 meses
Puntos: 7
Ese problema lo resolvi yo agregando estas tres lineas al header...
$sheaders=$sheaders."X-Priority: 1\r\n";
$sheaders=$sheaders."X-MSMail-Priority: High\r\n";
$sheaders=$sheaders."X-Mailer: Microsoft Outlook Express 6.00.2600.0000";
  #14 (permalink)  
Antiguo 04/12/2002, 12:50
Avatar de joseisrael  
Fecha de Ingreso: noviembre-2002
Ubicación: Maracay, Edo. Aragua
Mensajes: 221
Antigüedad: 22 años
Puntos: 1
Pregunta Ok, ahora +1000

Saludos.

Ahora la Execon una pregunta, qué pasa si en tu base de datos hay más de 100 emails??

Cómo mandas ese poco de emails en un sólo viaje?

o por lo menos de 100 en 100 ??

Gracias
__________________
Aprender Siempre. Lema de Vida

José Molina
  #15 (permalink)  
Antiguo 04/12/2002, 16:49
Avatar de execon  
Fecha de Ingreso: enero-2002
Ubicación: Temuco
Mensajes: 179
Antigüedad: 22 años, 10 meses
Puntos: 0
Generé un script que hace eso, pero nunca lo probé para más de 50 correos, aunque se ejecutaba rápido, puede que al estar enviando más de 100 correos el sistema detecte que el script ha entrado en un ciclo infinito y mate dicho proceso.

Cuando tenga un rato posteo el script que hace eso, en este momento estoy atareadisimo diseñando.

Saludoz
__________________
----------------------------------
APP Developer
[email protected]
----------------------------------
  #16 (permalink)  
Antiguo 05/12/2002, 05:26
Avatar de joseisrael  
Fecha de Ingreso: noviembre-2002
Ubicación: Maracay, Edo. Aragua
Mensajes: 221
Antigüedad: 22 años
Puntos: 1
Exclamación A ver si se puede

Saludos.

Lo que he pensado hacer es algo así:

Levanto un pop-up que se encargará de enviar los emails.

El query que me trae los emails a donde llegara la información, le colocaria algo así al final:

....LIMIT $INICIO, 50....

Comenzando con $INICIO = 0


Cuando termine de enviar esos 50 emails, mando a refrescar o recorgar el pop-up, pero ahora pasandole como variable extra $INICIO, donde quedaría:

$INICIO = $INICIO + 50

De esta manera en la segunda recarga el query quedaría al final:

....LIMIT 50,50...

Así iría enviando de 50 en 50, y me aseguraría que no existiera un "mate" del proceso por parte del servidor, ya que cada 50 emails estaría recargando la página...

Qué les parece?

Gracias
__________________
Aprender Siempre. Lema de Vida

José Molina
  #17 (permalink)  
Antiguo 05/12/2002, 08:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Usa mejor un blucle FOR que de saltos de 50 unidades desde 0 hasta el total de registros que te arroje tu consulta (= total de mails a enviar) ... anidado.

Seria algo así:

Código PHP:
$consulta_totales=mysql_query("SELECT COUNT(*) FROM tabla"); // consulta para otener el total de registros de la tabla.
$total_envios=mysql_result($consulta_totales,0); // obtenemos valor del unico registro obtenido.
mysql_free_result($consulta_totales); // liberamos memoria.

for ($inicio=0$inicio<=$total_envios$inicio+=50){ // $inicio+=50 es lo mismo q $inicio=$incio+50

$consulta=mysql_query(".... LIMIT $inicio,50");
While (....){
....
}


Un saludo,
  #18 (permalink)  
Antiguo 05/12/2002, 10:24
Avatar de hucasys  
Fecha de Ingreso: noviembre-2001
Ubicación: Bastante buena...
Mensajes: 816
Antigüedad: 23 años
Puntos: 3
Uf

Qué bueno ver que el post sirvió a varios.....como yo soy un simple osado aprendiz autodidacta de php, no sé nada, aún, por suerte trabajo con un programador que tiene un sistema re bueno para estos envíos......no sé si me lo dé para compartirlo.....

de todos modos.......ahí vemos.....;)
  #19 (permalink)  
Antiguo 05/12/2002, 15:57
Avatar de execon  
Fecha de Ingreso: enero-2002
Ubicación: Temuco
Mensajes: 179
Antigüedad: 22 años, 10 meses
Puntos: 0
Yo voto y apelo a que la mejor alternativa es hacer un ciclo que vaya enviando mails por bloques, un while o un for que vaya de 50 en 50, por ejemplo, como dice nuestro amigo más arriba.

Cuando yo hice ese script lo idee pensando en mandar muchos mails, pero en verdad nunca lo necesité, asike lo dejé de lado. Ya habrá un tiempo para revisarlo nuevamente y mejorarlo (o empeorarlo, que es lo más común que nos pase en primera instancia :-p :-p ).

Un saludo a todos, esta discusión ya se puedo buena !!
__________________
----------------------------------
APP Developer
[email protected]
----------------------------------
  #20 (permalink)  
Antiguo 06/12/2002, 08:54
Avatar de joseisrael  
Fecha de Ingreso: noviembre-2002
Ubicación: Maracay, Edo. Aragua
Mensajes: 221
Antigüedad: 22 años
Puntos: 1
Pregunta Pero el tiempo ???

Saludos.

Cluster tu idea esta bien, es sin duda lo que primero pense, pero y que tal con el tiempo que se tardará en enviar 3000 emails ???

Todos dentro de un for y un while???

O fue que no entendí bien el código ???

Es decir, el "for" le indica de cuanto en cuanto hara el envio ..

Y el "while" es para recorrer la consulta....

Pero igual ese "for" no tendrá que esperar a que llegue al TOTAL de registros traidos por la consulta?


Entonces donde coloco algo para que el server no crea que se ha entrado en un "Ciclo Infinito" como lo comento Execon en post anteriores?...

Gracias
__________________
Aprender Siempre. Lema de Vida

José Molina
  #21 (permalink)  
Antiguo 06/12/2002, 20:59
Avatar de execon  
Fecha de Ingreso: enero-2002
Ubicación: Temuco
Mensajes: 179
Antigüedad: 22 años, 10 meses
Puntos: 0
En una de las respuestas anteriores sale algo como esto:

$query = mysql_query("..... LIMIT $inicio",....)

en esta cadena estás especificando de cuántos mails van a salir de una vez, ahora, en el for puede que te tome un tiempo en hacerlo, yo probé mi script con 5 mails, demoraba sólo un corto tiempo, creo ke menos de un segundo. Ahora, depende de como esté construido el código y de lo rápido que el servidor procese ....

Saludoz
__________________
----------------------------------
APP Developer
[email protected]
----------------------------------
  #22 (permalink)  
Antiguo 06/12/2002, 23:41
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
El "for" q te puse .. solo te entrega:
0
50
100
150
.. hasta el total de registros de tu tabla de e-mails


a su vez anidado .. se ejecuta la consulta desde el registro $inicio hasta 50 registors mas adelante ($inicio+50) ...

El bucle ese nunca va entrar en un bucle infinito .. Puede domorarse mucho sí, dependiendo de cuantos e-mails tengas ...

Pero .. al fin y al cabo, esa solución es lo mismo q enviarle de golpe los 3000 mails . .si no ejecutas un bucle de espera o un sleep() para "retardar" la ejecución del bucle (for seria) y el servidor de e-amil "se tome un respiro" ...

Bueno .. a todo esto .. usar la funcion mail() y sedmail (repito palabras de Webestudio) no es lo ideal para una gran cantidad de e-mail .. lo Ideal es usar conexion directa a tu SMTP (por soket() )q uses y enviarselo todo .. .

aquí esta el tema:
http://www.forosdelweb.com/showthrea...hreadid=104071


Un saludo,

Última edición por Cluster; 06/12/2002 a las 23:46
  #23 (permalink)  
Antiguo 09/12/2002, 08:27
Avatar de joseisrael  
Fecha de Ingreso: noviembre-2002
Ubicación: Maracay, Edo. Aragua
Mensajes: 221
Antigüedad: 22 años
Puntos: 1
Santos Bucles !!!

Saludos.

Caramba, la cosa se puso peluda. jejejejeje

Empiezo a creer que es mejor usar los NewsList que traen los servidores o servicios de hosting pagos.

Caramba que proceso para enviar la "Manada de emails" como lo califico Cluster en post anteriores a este....jejejeje

La verdad es que de eso se trata.

Bueno, yo por mi parte tratare de bajar la class de herminio (hasta ahora me ha dado error el link) y ver si puedo utilizarla como quiero.

Por otra parte le agradezco a todos los que han participado y dado sus ideas.

Suerte
__________________
Aprender Siempre. Lema de Vida

José Molina
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 13:10.