Comunidad de diseño web y desarrollo en internet online

Formail llega duplicado

Citar            
MensajeEscrito el 24 Feb 2011 03:21 am
Desarrollé un enlace que abre un formulário php con el conocido ENVIE PARA UM AMIGO.

Pero me estoy encontrando con dos problemas, el primero es que llegan dos e-mails, uno teniendo como remitente mi dirección en el servidor que es así

[email protected]

y otro con la dirección de quien realmente está enviando que es el único que debería llegar.

El otro problema es que intenté colocar una imágen para que llegue como encabezado pero la misma no está apareciendo.

Código PHP :

<?php 

   if (isset($_POST['botao'] )) {
      
   //VARIÁVEIS EXTERNAS
   $sitename = "Pluspixel"; 
   $siteaddress = "http://www.pluspixel.com.br/";   
      
   //CRIAR AS VARIÁVEIS INTERNAS
   $img = "<img src=\"http://www.pluspixel.com.br/marca.gif\"/>";
   $destino    = $_POST['fmail'];
   $assunto  = $_POST['yname']." te recomendou este artigo publicado em $sitename";
   $ymail = $_POST['ymail'];
   
   //MONTAR O CORPO DA MENSAGEM
   $mensagem  = "$img"."\n\n";
   $mensagem .= $_POST['yname']." viu este artigo em $sitename e enviou para ti:"."\n\n";
   $mensagem .= $_POST['mensagem']."\n\n";
   $mensagem .= $_POST['titulo']."\n\n";
   $mensagem .= $_POST['url']."\n\n";
   $mensagem .= "Esta mensagem foi enviada desde $sitename ($siteaddress)"."\n\n";

   //ENVIAR A MENSAGEM
   mail($destino, $assunto, $mensagem, "From:$ymail");
   
   //REDIRECIONANDO
   if(mail($destino, $assunto, $mensagem, $remetente))
   {
      echo "<script>alert('Email enviado com sucesso');</script>";
      header("Location: ".$_POST['url']);

   } 
}
?>


Alguin sabe lo que está pasando y como resolver?

Desde ya muchas gracias. Claudio

Por Ishkandar

Claber

303 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 24 Feb 2011 04:34 pm
Que te lleguen dos mensajes es fácil: estás enviando dos mensajes :).
Uno con la llamada a mail() que está después del comentario que dice
//ENVIAR A MENSAGEM
y el otro en el if que está después de eso. Ahí tienes dos envios.

Para lo de la imagen es más complicado. Por empezar el mensaje debe estar en formato HTML para que puedas incrustar una imagen. Tu mensaje no lo está. Y para que los clientes de correo reconozcan que es un mensaje HTML debes enviarle los encabezados correctos.
Pero esto no basta ya que hoy en día casi ningún cliente de correo (incluyendo los webmails) no descargan imágenes ni ningún otro contenido que esté apuntado externamente al mensaje de correo mismo, por lo que hacer un <img src="http://..." no te funcionará. Debes embeber la imagen en el propio cuerpo del correo y para eso debes adjuntar la imagen y ponerle un "Content ID" y...

Mejor usa la biblioteca PHPMailer o Swift Mailer que con cuatro líneas de código resuelves todos estos problemas y además haces que tus envíos sean seguros (el código tal como lo tienes ahora es muy inseguro).

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 24 Feb 2011 05:38 pm
Gracias amigo, voy a buscar esas bilbiotecas y ver como como les coloco el html adentro.

Por Ishkandar

Claber

303 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 25 Feb 2011 12:48 pm
ERROR!!! estas haciendo mail dos veces! por ende envías el mail las dos veces!

Recomendación: Usa PHPMailer, que te permite enviar correos sin líos y de forma segura

Código PHP :

 mail($destino, $assunto, $mensagem, "From:$ymail"); 
    
   //REDIRECIONANDO 
   if(mail($destino, $assunto, $mensagem, $remetente)) 
   

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

chrome
Citar            
MensajeEscrito el 25 Feb 2011 01:41 pm
Amigo, que falta de conocimiento de programación PHP de mi parte. Pensé que ese condicional trabajaba como en Action Script 3.0 ..> Si la condición es true...haga tal cosa...

Muchas gracias voy a buscar la biblioteca que me indicaste

Por Ishkandar

Claber

303 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 24 Sep 2014 12:26 am
Muchas gracias por el aporte, muy buena intervención. Te felicito.

DriverOp escribió:

Que te lleguen dos mensajes es fácil: estás enviando dos mensajes :).
Uno con la llamada a mail() que está después del comentario que dice
//ENVIAR A MENSAGEM
y el otro en el if que está después de eso. Ahí tienes dos envios.

Para lo de la imagen es más complicado. Por empezar el mensaje debe estar en formato HTML para que puedas incrustar una imagen. Tu mensaje no lo está. Y para que los clientes de correo reconozcan que es un mensaje HTML debes enviarle los encabezados correctos.
Pero esto no basta ya que hoy en día casi ningún cliente de correo (incluyendo los webmails) no descargan imágenes ni ningún otro contenido que esté apuntado externamente al mensaje de correo mismo, por lo que hacer un <img src="http://..." no te funcionará. Debes embeber la imagen en el propio cuerpo del correo y para eso debes adjuntar la imagen y ponerle un "Content ID" y...

Mejor usa la biblioteca PHPMailer o Swift Mailer que con cuatro líneas de código resuelves todos estos problemas y además haces que tus envíos sean seguros (el código tal como lo tienes ahora es muy inseguro).

Por jhony.agapito

0 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.