Foros del Web » Programando para Internet » PHP »

responder a un mail?

Estas en el tema de responder a un mail? en el foro de PHP en Foros del Web. Hola gente les cuento lo que me pasa y vemos si alguien me puede dar una mano Tengo un formulario web que completan los usuarios ...
  #1 (permalink)  
Antiguo 25/09/2006, 13:03
Avatar de lehega  
Fecha de Ingreso: junio-2005
Ubicación: buenos aires
Mensajes: 45
Antigüedad: 14 años, 5 meses
Puntos: 0
responder a un mail?

Hola gente les cuento lo que me pasa y vemos si alguien me puede dar una mano
Tengo un formulario web que completan los usuarios en la web y los datos llegan via mail, uno de los datos que completan los usuarios es su email, lo que yo quiero es que cuando llegan los mails a mi casilla cuando le doy responder que aparesca la direccion de mail que cargaron como direccion para de respuesta, se entiendo?

agrego el codigo para aclara la idea, el formulario permite adjuntar archivos tambien

Código:
<?php
	
	
	function form_mail($sPara, $sAsunto, $sTexto, $sDe){
		
		$bHayFicheros = 0;
		$sCabeceraTexto = "";
		$sAdjuntos = "";
		
		if ($sDe)$sCabeceras = "From:".$sDe."\n"; else $sCabeceras = "";
		$sCabeceras .= "MIME-version: 1.0\n"; 

		
		
		foreach ($_POST as $sNombre => $sValor)
		    	$sTexto = $sTexto."\n".$sNombre." = ".$sValor; 
		
		foreach ($_FILES as $vAdjunto){
		    	
		    	if ($bHayFicheros == 0){
		    	
		    		$bHayFicheros = 1;
		    		
		    		$sCabeceras .= "Content-type: multipart/mixed;"; 
					$sCabeceras .= "boundary=\"--_Separador-de-mensajes_--\"\n";
					
					$sCabeceraTexto = "----_Separador-de-mensajes_--\n"; 
					$sCabeceraTexto .= "Content-type: text/plain;charset=iso-8859-1\n"; 
					$sCabeceraTexto .= "Content-transfer-encoding: 7BIT\n";
					
					$sTexto = $sCabeceraTexto.$sTexto;

		    	}
		    	
		    	if ($vAdjunto["size"] > 0){
		    				    		
		    		$sAdjuntos .= "\n\n----_Separador-de-mensajes_--\n";
		    		$sAdjuntos .= "Content-type: ".$vAdjunto["type"].";name=\"".$vAdjunto["name"]."\"\n";;
					$sAdjuntos .= "Content-Transfer-Encoding: BASE64\n"; 
					$sAdjuntos .= "Content-disposition: attachment;filename=\"".$vAdjunto["name"]."\"\n\n"; 				
		    		
		    		$oFichero = fopen($vAdjunto["tmp_name"], 'r'); 
					$sContenido = fread($oFichero, filesize($vAdjunto["tmp_name"])); 
					$sAdjuntos .= chunk_split(base64_encode($sContenido));
					fclose($oFichero); 
		    	}
		    	
		}
		
		if ($bHayFicheros)
			$sTexto .= $sAdjuntos."\n\n----_Separador-de-mensajes_----\n"; 		
			return(mail($sPara, $sAsunto, $sTexto, $sCabeceras));
		}
	
	$sDe= $_POST["Nombre"];
	
	if (form_mail("[email protected]", 
				  "Subject del mail", 
				  "Los datos introducidos en el formulario son:\n\n",
				  $sDe
				  )	
				  )
		echo "Su formulario ha sido enviado satisfactoriamente, en breve nos pondremos en contacto con Ud.";

?>
  #2 (permalink)  
Antiguo 25/09/2006, 14:17
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Pues si "From" no te sirve, podrías probar con la cabecera "Reply-To"


Saludos.
  #3 (permalink)  
Antiguo 26/09/2006, 07:03
Avatar de lehega  
Fecha de Ingreso: junio-2005
Ubicación: buenos aires
Mensajes: 45
Antigüedad: 14 años, 5 meses
Puntos: 0
Exclamación

hola muchas gracias
el tema es que como el codigo es medio complicado (al menos para mi) por lo de adjuntar los archivos no me doy cuenta donde debo poner el reply-to, si alguien se da cuenta como debo agregarlo en el codigo me ayuda?


muchas gracias otra ves


saludos
  #4 (permalink)  
Antiguo 26/09/2006, 07:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 17 años, 11 meses
Puntos: 129
"Reply-to" sería una cabecera que componer más a las que ya tienes para generar tu e-mail.

Sería algo así:
Código PHP:
$sCabeceraTexto .= "Reply-To: $responder_email\n"
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 26/09/2006, 14:25
Avatar de lehega  
Fecha de Ingreso: junio-2005
Ubicación: buenos aires
Mensajes: 45
Antigüedad: 14 años, 5 meses
Puntos: 0
muchas gracias Cluster pero lo probe y la verdad que me tira un mensaje rarisimo, me dice que la variable no esta definida no se si lo estoy poniendo en un lugar donde no va o que hago mal
  #6 (permalink)  
Antiguo 26/09/2006, 15:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 17 años, 11 meses
Puntos: 129
Cita:
Iniciado por lehega Ver Mensaje
muchas gracias Cluster pero lo probe y la verdad que me tira un mensaje rarisimo, me dice que la variable no esta definida no se si lo estoy poniendo en un lugar donde no va o que hago mal
Pero como lo usas? $responder_email es una variable que puse yo (sin tener que ver nada con las variables que tu usas) para describirte que es ahí donde tienes que usar la variable que defina el e-mail a responder.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 27/09/2006, 09:07
Avatar de lehega  
Fecha de Ingreso: junio-2005
Ubicación: buenos aires
Mensajes: 45
Antigüedad: 14 años, 5 meses
Puntos: 0
hola Cluster

si habia entendido que era un ejemplo de nombre de variable, el tema es que sigue haciendo lo mismo, recibo todo perfecto, pero cuando hago un reply al mail pone en la direccion de respuesta el nombre de la persona que lo envia y @ el hosting donde esta alojado el formulario
te paso el codigo para que veas de que forma lo estoy haciendo y me digas donde esta el error si puede ser

muchas gracias amigo

Código:
<?php
	
	
	function form_mail($sPara, $sAsunto, $sTexto, $sDe){
		
		$bHayFicheros = 0;
		$sCabeceraTexto = "";
		$sAdjuntos = "";
		
		if ($sDe)$sCabeceras = "From:".$sDe."\n"; else $sCabeceras = "";
		$sCabeceras .= "MIME-version: 1.0\n"; 
		
		foreach ($_POST as $sNombre => $sValor)
		    	$sTexto = $sTexto."\n".$sNombre." = ".$sValor; 
		
		foreach ($_FILES as $vAdjunto){
		    	
		    	if ($bHayFicheros == 0){
		    	
		    		$bHayFicheros = 1;
					$sDe= $_POST["email"];
		    		
		    		$sCabeceras .= "Content-type: multipart/mixed;"; 
					$sCabeceras .= "boundary=\"--_Separador-de-mensajes_--\"\n";
					
					$sCabeceraTexto = "----_Separador-de-mensajes_--\n"; 
					$sCabeceraTexto .= "Content-type: text/plain;charset=iso-8859-1\n"; 
					$sCabeceraTexto .= "Content-transfer-encoding: 7BIT\n";
					$sCabeceraTexto .= "Reply-To: $sDe";
					
					$sTexto = $sCabeceraTexto.$sTexto;

		    	}
		    	
		    	if ($vAdjunto["size"] > 0){
		    				    		
		    		$sAdjuntos .= "\n\n----_Separador-de-mensajes_--\n";
		    		$sAdjuntos .= "Content-type: ".$vAdjunto["type"].";name=\"".$vAdjunto["name"]."\"\n";;
					$sAdjuntos .= "Content-Transfer-Encoding: BASE64\n"; 
					$sAdjuntos .= "Content-disposition: attachment;filename=\"".$vAdjunto["name"]."\"\n\n"; 				
		    		
		    		$oFichero = fopen($vAdjunto["tmp_name"], 'r'); 
					$sContenido = fread($oFichero, filesize($vAdjunto["tmp_name"])); 
					$sAdjuntos .= chunk_split(base64_encode($sContenido));
					fclose($oFichero); 
		    	}
		    	
		}
		
		if ($bHayFicheros)
			$sTexto .= $sAdjuntos."\n\n----_Separador-de-mensajes_----\n"; 		
			return(mail($sPara, $sAsunto, $sTexto, $sCabeceras));
		}
	
	$sDe= $_POST["Nombre"];
	
	if (form_mail("direccion de mail destino-mia", 
				  "CV enviado desde la web", 
				  "Los datos introducidos en el formulario son:\n\n",
				  $sDe
				  )	
				  )
		echo "Su formulario ha sido enviado satisfactoriamente, en breve nos pondremos en contacto con Ud.";

?>
  #8 (permalink)  
Antiguo 27/09/2006, 10:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 17 años, 11 meses
Puntos: 129
Podría ser el orden de las cabeceras .. Intenta usarla antes de tu cabecera MIME que ya usas .. y con su \n respectivo al final.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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




La zona horaria es GMT -6. Ahora son las 23:24.