Foros del Web » Programando para Internet » PHP »

Hacer un espacio al recibir un email

Estas en el tema de Hacer un espacio al recibir un email en el foro de PHP en Foros del Web. Hola amigos, estoy tratando de que al recibir un email con este código Código PHP:      <?php       //Copyright &copy; McAnam.com             function  form_mail ( $sPara ...
  #1 (permalink)  
Antiguo 27/09/2008, 10:37
Avatar de adexedl  
Fecha de Ingreso: julio-2005
Mensajes: 326
Antigüedad: 18 años, 9 meses
Puntos: 2
Hacer un espacio al recibir un email

Hola amigos,

estoy tratando de que al recibir un email con este código
Código PHP:
    <?php 
    
//Copyright &copy; McAnam.com 
     
    
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($oFicherofilesize($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)); 
    } 
     
    
//Ejemplo de como usar: 
    
if (form_mail("[email protected]"
                 
"Formulario de contacto"
                 
"::: Presupuesto Energía Fotofoltaica :::\n\n Instalación conectada a red \n\n ------------------------------------------------------ \n\n "
                 
"[email protected]
                 

        ) 
        echo 
"<p>Su presupuesto ha sido enviado con éxito.</p><p>Un comercial de TEFESOL se pondrá en contacto con usted lo antes posible.</p><p><b>Gracias por confiar en nosotros.</b></p>"
        
        
?>
pero necesito que al recibirlo poder dejar espacios en blanco o separaciones porque al ser de formularios muy extensos se me queda muy pegado.

He intentado poner un campo oculto y le he dado el valor
Código PHP:
<input type="hidden" value="<?php "\"\n";?>" />
pero no me sale.

Bueno espera vuestra ayuda.

Saludos y gracias de antemano
__________________
Diseño Web Canarias
  #2 (permalink)  
Antiguo 27/09/2008, 10:51
Avatar de vidalsoft  
Fecha de Ingreso: julio-2008
Ubicación: /www/...
Mensajes: 339
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Hacer un espacio al recibir un email

Hola...
Si quieres dejar espacion en blanco usa </br> del html

concatenas tus lineas ."</br>";

claro seria mejor que primero hagas el formulario y luego lo amoldas a tu mensaje con echo en php
y tambien puedes usar CSS estilos, ovio que debes agregar la hoja de estilos.

ejemplo:
$cuerpo_mensaje="<link href='http://www.tuweb.com/css/estilos.css' rel='stylesheet' type='text/css' /> ";

pero para todo ello deben colocar las cabeceras de html...

Saludos...
__________________
Anthony Vidal Contreras | @AnthonyVidalC | Skype: vidalsystem | [email protected]
  #3 (permalink)  
Antiguo 27/09/2008, 11:30
Avatar de pablinff  
Fecha de Ingreso: diciembre-2005
Ubicación: Argentina
Mensajes: 383
Antigüedad: 18 años, 3 meses
Puntos: 7
Respuesta: Hacer un espacio al recibir un email

Lo mejor es que compongas el mensaje en HTML, sería algo así:
Código PHP:
$cuerpo "
<html>
 <head>
 ......
 ......
 </head>
 <body>
 ......
 ......
 <div>Una capa, que le agrego un br para que me haga un salto de line</div>
 <p>un parrafo, no es necesario que inserte un br al final puesto que esta etiqueta ya lo realiza</p>
 .....
 .....
 </body>
</html>
"

Entonces la función mail() te quedaría algo así:
Código PHP:
mail("[email protected]""Asunto"$cuerpo"cabeceras"); 
Ha! y no te olvides de poner en las cabeceras lo siguiente:
Código PHP:
$headers     "MIME-Version: 1.0\r\n";
$headers     .= "Content-type: text/html; 
Tené en cuenta de que si decidís incluir imagenes al e-mail deberás poner rutas absolutas, por ej: "http://www.tudominio.com/imagenes/imagen.jpg"
Y mientras menos etiquetas html utilices mejor, debido a que la mayoría de los clientes de correo como GMAIL, Hotmail no soportan muchas etiquetas html, el que mejor lo hace es Yahoo, pero aún así no del todo. Lo mismo con CSS, mientras menos mejor.

Espero que te sirva.
Saludos!
__________________
I'm gonna start a revolution from my bed...

Última edición por pablinff; 27/09/2008 a las 12:08
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 05:38.