Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   colocar un attach dentro del envio del correo (https://www.clubdelphi.com/foros/showthread.php?t=27004)

srangel 09-11-2005 17:45:07

colocar un attach dentro del envio del correo
 
hago el envio de correo desde el programa php ...ahora mi duda es como puedo colocar un attach de un archivo de excel......no se como se define dentro de php...si me pudieran ayudar se los agradeceria.....

salvica 10-11-2005 22:35:58

Hola srangel, buenas noches.

Promero deberias decirnos el programa que usas para enviar correo, ya que estos cambian unos de otros.

Yo, personalmente, utilizo el "phpmailer" y es tan sencillo como:
Código PHP:

/*
  +------------------------------------------------------------------------
  | definir los parámetros de "phpMailer"
  +------------------------------------------------------------------------
*/
  
require( $pathBase "sql/hostSMP.inc" );
  require( 
"class.phpmailer.php" );
  
$mail = new PHPMailer();
  
$mail->SetLanguage("es""language/"); //--------- en Español
  
$mail->IsSMTP(); // ----------------------------- enviar via SMTP
  
$mail->Host     "$hostName"// -------------- servidor/es SMTP
  
$mail->SMTPAuth true// ---------------------- SMTP requiere contraseñas
  
$mail->Username "$hostUser";  // -------------- SMTP username
  
$mail->Password "$hostPass"// --------------- SMTP password
  
$ContentType    "text/html"// --------------- tipo de contenido del mensaje
  
$mail->From     "$hostEMail"// -------------- email del remitente
  
$mail->FromName "$hostAlias"// -------------- nombre del remitente
  // ---------------------------------------------- destinatario(s)
  
for( $i=0$i<count($arrayEmail); $i++ ) {
       
$mail->AddAddress("$arrayEmail[$i]",     "$arrayLista[$i]");
  }
  
// ---------------------------------------------- responder a ...
  
$mail->AddReplyTo("$hostEMail",               "$hostAlias");
  
$mail->WordWrap 200// ----------------------- establecer el ancho de la línea
  // ---------------------------------------------- FICHEROS A ENVIAR
  
$mail->AddAttachment("../imagen/imagen.gif");
  
$mail->AddAttachment("../textos/texto.txt");
  
$mail->IsHTML(true); // ------------------------- enviar como HTML
  
$mail->Subject  =  "$asunto"// ---------------- asunto del mensaje
  
$mail->Body     =  "$cssHtml"
                  
.  "$cuerpoHtml"// ------------ mensaje en "Html"
  
$mail->AltBody  =  "$cuerpoText"// ------------ mensaje en "Solo Texto"
/*
  +------------------------------------------------------------------------
  | enviar el correo con "phpMailer"
  +------------------------------------------------------------------------
*/
  
if( !$mail->Send() ) {
      echo 
"El mensaje NO ha sido enviado <p>";
      echo 
"Mailer Error: " $mail->ErrorInfo;
      exit;
  }
?> 

El script (son dos: "class.phpmailer.php" y "class.smtp.php") los puedes bajar de http://www.programacion.com/php/articulo/phpmailer/ (no sé si habán actualizado la versión, creo que van por la 1.72 o algo así, además te explican como configurarlo y los parámetros que necesita.

Saludos: salvica

srangel 25-11-2005 16:03:55

este es el codigo que tengo ahorita funcionando ....pero el unico problema que tengo que solo me manda el archivo no me manda lo que contiene el mensaje1....y yo lo que requiero es que venga tanto con el texto como con el archivo....espero y me puedas ayudar ....

Código PHP:

$asunto "Encuesta Servicio";
$mensaje1="<html><head></head><body><p align=center><strong>".
  
"Se Envia el Formato de Quejas de los Servicios de Calibracion</p></body></html>";
$archivo="encuesta.xls";
$cabeceras "MIME-Version: 1.0\r\n";
$cabeceras .= "From: Solicitudes de Calibracion \n";
$cabeceras .= "Content-type: text/html;name=\"my attachment\"\n";
$cabeceras .= "Content-Transfer-Encoding: base64\n";
$cabeceras .= "Content-Disposition: attachment; filename=\"$archivo\"\n\n";
$path "/usr/local/etc/httpd/htdocs/CursoNet/Solicitudes/encuesta.xls";
$fp fopen($path'r');
do 
//we loop until there is no data left
{
$data fread($fp8192);
if (
strlen($data) == 0) break;
$content .= $data;
} while (
true);
$content_encode chunk_split(base64_encode($content));
$cabeceras .= $content_encode "\n";
$cabeceras .= "--" $boundary "\n";
$cabeceras .= "From: Envio del Formato de Quejas\n";
$headers .= "MIME-Version: 1.0\n";
mail($para,$asunto,$mensaje1,$cabeceras); 


salvica 26-11-2005 01:24:16

Hola srangel, buenas noches
Primero utiliza las etiquetas PHP para identar el código que sino se hace complicado leerlo ;)

Segundo, como te decía en el post anterior, no utilizo el MAIL(), por lo que si hay más errores se me hará dificil ayudarte :mad: :mad: :mad:

Según el manual de php, la opción MIME-Version: 1.0 la pone dentro de la cabecera, mientras que tú la pones en headers, o sea tú pones:
Código PHP:

$cabeceras .= $content_encode "\n";
$cabeceras .= "--" $boundary "\n";
$cabeceras .= "From: Envio del Formato de Quejas\n";
$headers .= "MIME-Version: 1.0\n"

y en el manual pone (te lo pongo íntegro):
Código PHP:

/* recipientes */
$para "[email="maria@example.com"][email protected][/email]" ", " // fijese en la comma
$para .= "[email="kelly@example.com"][email protected][/email]";
/* asunto */
$asunto "Recordatorio de Cumplea&ntilde;os para Agosto";
/* mensaje */
$mensaje '
<html><head><title>Recordatorio de Cumplea&ntilde;os para Agosto</title></head>
<body><p>&iexcl;Aqu&iacute; est&aacute;n los cumplea&ntilde;os que llegan en Agosto!</p>
<table><tr><th>Persona</th><th>D&iacute;a</th><th>Mes</th><th>A&ntilde;o</th></tr>
<tr><td>Juan</td><td>3</td><td>August</td><td>1970</td></tr>
<tr><td>Sandra</td><td>17</td><td>August</td><td>1973</td></tr>
</table></body></html>'
;
 
/* Para enviar correo HTML, puede definir la cabecera Content-type. */
$cabeceras "MIME-Version: 1.0\r\n";
$cabeceras .= "Content-type: text/html; charset=iso-8859-1\r\n";
 
/* cabeceras adicionales */
$cabeceras .= "To: Maria <[email="maria@example.com"][email protected][/email]>, Kelly <[email protected]>\r\n";
$cabeceras .= "From: Recordatorio <[email protected]>\r\n";
$cabeceras .= "Cc: [email][email protected][/email]\r\n";
$cabeceras .= "Bcc: [email][email protected][/email]\r\n";
 
/* y ahora, enviarlo */
mail($para$asunto$mensaje$cabeceras); 

No sé si eso y la forma de la disposición tendran algo que ver.

Siento no poderte ser de más ayuda.:(
Saludos
salvica


La franja horaria es GMT +2. Ahora son las 21:18:36.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi