Foros del Web » Programando para Internet » PHP »

duda en envio de mail

Estas en el tema de duda en envio de mail en el foro de PHP en Foros del Web. hola gente le cuento, tengo este codigo PHP con el que envio un formulario mas un archivo adjunto desde la web, funciona perfecto pero quiero ...
  #1 (permalink)  
Antiguo 22/09/2006, 12:21
Avatar de lehega  
Fecha de Ingreso: junio-2005
Ubicación: buenos aires
Mensajes: 45
Antigüedad: 14 años, 7 meses
Puntos: 0
Pregunta duda en envio de mail

hola gente
le cuento, tengo este codigo PHP con el que envio un formulario mas un archivo adjunto desde la web, funciona perfecto pero quiero que hacerle un pequeño cambio. Cuando recibo los mails desde la web me pone un asunto (subject) que yo le indico pero en el nombre de quien lo envia siempre dice "info" como hago para que ahi pongo el nombre de quien lo envia o su direccion de mail?

muchas gracias de antemano

Saludos


Lehega


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));
		}
	
	
	if (form_mail("[email protected]", 
				  "CV enviado desde la web", 
				  "Los datos introducidos en el formulario son:\n\n",
				  "aca esta el tema",
				 )
		)
		echo "Su formulario ha sido enviado satisfactoriamente, en breve nos pondremos en contacto con Ud.";

?>

  #2 (permalink)  
Antiguo 22/09/2006, 13:30
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 16 años, 3 meses
Puntos: 11
La variable $sDe tiene lo que aparecerá en el nombre de origen, asignale a esa variable lo que quieras que aparezca como origen. Es decir, el 4to parametro de la funcion, donde colocas "aca esta el tema", en ese deberías escribir el origen.

Última edición por claudiovega; 22/09/2006 a las 13:35
  #3 (permalink)  
Antiguo 22/09/2006, 13:36
Avatar de lehega  
Fecha de Ingreso: junio-2005
Ubicación: buenos aires
Mensajes: 45
Antigüedad: 14 años, 7 meses
Puntos: 0
Claudio pero la asignacion de ese valor debo hacerselo antes de ese lugar que marque en el codigo o ahi mismo?
no me doy cuenta de como hacerlo, como quedaria en el codigo?
  #4 (permalink)  
Antiguo 22/09/2006, 13:38
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 16 años, 3 meses
Puntos: 11
if (form_mail("[email protected]", "CV enviado desde la web", "Los datos introducidos en el formulario son:\n\n", "Aqui_va" ))
  #5 (permalink)  
Antiguo 22/09/2006, 14:39
Avatar de lehega  
Fecha de Ingreso: junio-2005
Ubicación: buenos aires
Mensajes: 45
Antigüedad: 14 años, 7 meses
Puntos: 0
Claudio anduvo tu idea, muchisimas gracias
Ahora tengo otro tema, yo le indico que ponga el nombre o el mail del que envia, eso funciona perfecto pero como hago para que cuando le doy responder a ese mail responda a la direccion de mail que cargaron el el form??

Te paso como me quedo hasta ahora a ver si me podes dar una manito mas

Gracias otra ves


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["email/Nombre"];

	
	if (form_mail("[email protected]", 
				  "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.";

?>
  #6 (permalink)  
Antiguo 22/09/2006, 22:03
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 16 años, 3 meses
Puntos: 11
No entiendo lo que quieres.
Dices que cuando el otro recibe el mail, presiona en su cliente de correo responder y no le aparece el origen que enviaste como destino de su respuesta?
Es eso?
  #7 (permalink)  
Antiguo 25/09/2006, 07:23
Avatar de lehega  
Fecha de Ingreso: junio-2005
Ubicación: buenos aires
Mensajes: 45
Antigüedad: 14 años, 7 meses
Puntos: 0
De acuerdo

exacto, cuando le doy responder no toma como direccion de respuesta la direccion de mail de quien envio el mail sino que toma una que me parece es la del servidor donde esta hosteado el formulario.
Lo que yo quiero es que cuando le den responder a ese mail la direccion de respuesta sea la de quien completo el formulario y dejo su casilla de mail en el.

Muchas gracias


Saludos
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 04:08.