Foros del Web » Programando para Internet » PHP »

Enviar PDF por correo

Estas en el tema de Enviar PDF por correo en el foro de PHP en Foros del Web. ya he terminado de generar mi archivo pdf y quedo de lujo, lo que necesito ahora es enviarlo por correo inmediatamente se genera, para lo ...

  #1 (permalink)  
Antiguo 15/12/2008, 22:41
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.416
Antigüedad: 18 años, 8 meses
Puntos: 20
Enviar PDF por correo

ya he terminado de generar mi archivo pdf y quedo de lujo, lo que necesito ahora es enviarlo por correo inmediatamente se genera, para lo cual estoy usando la clase phpMailer la cual descargue y modifique con los datos del servidor SMTP que uso (el de google apps)

bueno el caso es que hice el siguiente script

Código:
$pdf->Sety(13.1);
$pdf->SetX(4.7);
$pdf->Cell(0,0,$row3['modelo']);
$pdf->Sety(13.4);
$pdf->SetX(5.5);
$pdf->Cell(0,0,$row3['tarjeta_operacion']);
$pdf->Sety(12.7);
$pdf->SetX(12.3);
$pdf->Cell(0,0,$row3['marca']);
$pdf->Sety(13.1);
$pdf->SetX(12.8);
$pdf->Cell(0,0,$row3['no_interno']);
$pdf->Sety(13.4);
$pdf->SetX(12.6);
$pdf->Cell(0,0,$row3['vencimiento_t_o']);
$mail=new PHPmailer();
$mail->Host = "localhost";
$mail->From = "[email protected]";
$mail->FromName = "Nombre del Remitente";
$mail->Subject = "Subject del correo";
$mail->AddAddress("[email protected]","Nombre 01");
$doc=$pdf->Output('extracto /' .$row3['no_interno'].'/'.date("d-m-Y", $fecha_salida).'','I');
$mail->AddStringAttachment($doc, 'doc.pdf', 'base64', 'application/pdf');
$mail->Send();
}
y me genera bien el pdf, lo abre normal, pero no me lo envia por correo, que tengo mal?
__________________
Say no more.......
  #2 (permalink)  
Antiguo 16/12/2008, 05:22
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 15 años, 3 meses
Puntos: 48
Respuesta: Enviar PDF por correo

¿Estas seguro que en $doc se mete el pdf en una cadena? Si usas fpdf, el segundo parametro debe ser una S para devolver el pdf como cadena.
  #3 (permalink)  
Antiguo 16/12/2008, 13:07
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.416
Antigüedad: 18 años, 8 meses
Puntos: 20
ya revise bien y lo que pasa es que el phpmailer no me esta enviando correo, lo estoy tratando de usar con el smtp de gmail pero la guia que encontre dice que modifique algo en la linea 537 pero la version que me descargue que es la ultima no concuerda

me doy, he buscado de todas las formas y no logro hacer que phpmailer corra bien, alguien sabe de otra clase similar que me permita enviar archivos adjuntos o una guia detallada de phpmailer

hola, luego de mucho intentar, he logrado que generar el archivo pdf y enviarlo inmediatamente al correo, el problema es que cuando llega al correo, llega como un archivo pdf de 0.0 K y obviamente no trae ninguna informacion.

el script que tengo es este

Código:
$pdf->Cell(0,0,$row3['vencimiento_t_o']);
//envia correo


$mail=new PHPMailer();
$mail->Mailer="smtp";
$mail->Helo = "www.crmbusiness.biz"; //Muy importante para que llegue a hotmail y otros
$mail->SMTPAuth=true;
$mail->Host="smtpout.secureserver.net";
$mail->Port=25; //depende de lo que te indique tu ISP. El default es 25, pero nuestro ISP lo tiene puesto al 26
$mail->Username="[email protected]";
$mail->Password="buckdich";
$mail->From="[email protected]";
$mail->FromName="El Nombre del Remitente";
$mail->Timeout=60;
$mail->IsHTML(true);
//Enviamos el correo
$mail->AddAddress('[email protected]'); //Puede ser Hotmail
$mail->Subject='Extracto de contrato';
//esto fue lo otro insertado

$doc=$pdf->Output('extracto /' .$row3['no_interno'].'/'.date("d-m-Y", $fecha_salida).'','I');
$mail->AddStringAttachment($doc, 'extracto /' .$row3['no_interno'].'/'.date("d-m-Y", $fecha_salida).'', 'base64', 'application/pdf');
$mail->Send();
}
por ahi lei que el pdf deberia ser generado como string S para poder enviarlo, pero si lo genero asi, ni me lo muestra en el navegador ni me lo envia porcorreo, alguien puede decirme que tengo mal? ya esto es lo ultimo jej
__________________
Say no more.......

Última edición por GatorV; 16/12/2008 a las 17:07
  #4 (permalink)  
Antiguo 16/12/2008, 17:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 9 meses
Puntos: 2135
Respuesta: Enviar PDF por correo

Temas unidos, por favor no dupliques temas.

Si ves el Manual de FPDF que te he dejado tantas veces, es forzoso que uses el parámetro S para que te devuelva el contenido.

Prueba quitar el $mail->Send() y haz un var_dump($doc) para que veas si te regresa el PDF adecuadamente.

Saludos.
  #5 (permalink)  
Antiguo 16/12/2008, 18:17
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.416
Antigüedad: 18 años, 8 meses
Puntos: 20
Respuesta: Enviar PDF por correo

ok, cambie el parametro a S nuevamente e hice el var_dump y este fue el resultado:

string(1099) "%PDF-1.3 3 0 obj <> endobj 4 0 obj <> stream xœmÑMK1àûþŠõ`LÒ¦GGô ˆx.»³:ËÚãßéJW …ä!)ož6„êákÓtpûÈÀ‚DÐíá¡+%ö‚‘A½b˜Ë;¸Ú¦ãp ÝáЀ>.à�>¦¼;3QQ#¨åÃr3! ³VP¸f†ãèâ…ibч…Ý¿´ÐLã�ûq¬`ð<ØèКÅ=§1�Ž ¶ïýgêÿS�ÖÍyÈoSNõZã�X h×$Ú»œòþ\ÅxW·KH,Ôµ-ÖÔ eTªw4íkÝwŠÎ×ó™HÎ�•ï«7Ì—Íï;¿�@q™ endstream endobj 1 0 obj <> endobj 5 0 obj <> endobj 2 0 obj << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] /Font << /F1 5 0 R >> /XObject << >> >> endobj 6 0 obj << /Producer (FPDF 1.53) /CreationDate (D:20081216191630) >> endobj 7 0 obj << /Type /Catalog /Pages 1 0 R /OpenAction [3 0 R /FitH null] /PageLayout /OneColumn >> endobj xref 0 8 0000000000 65535 f 0000000398 00000 n 0000000581 00000 n 0000000009 00000 n 0000000087 00000 n 0000000485 00000 n 0000000685 00000 n 0000000761 00000 n trailer << /Size 8 /Root 7 0 R /Info 6 0 R >> startxref 864 %%EOF "


Ahh y perdon por lo de duplicar los mensajes pero es que estoy como desesperado con esto
__________________
Say no more.......
  #6 (permalink)  
Antiguo 16/12/2008, 18:22
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 11 años, 7 meses
Puntos: 105
Respuesta: Enviar PDF por correo

Hola el_cesar, pero lo que pasa es que al enviar el correo. el que recibe no reconoce la ruta del pdf, es decir, tienes que enviarle la ruta en internet (http://www.dominio.com/files/doc.pdf)

y creo que asi si deberia funcionar.

suerte y que Dios te Bendiga.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #7 (permalink)  
Antiguo 16/12/2008, 18:23
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.416
Antigüedad: 18 años, 8 meses
Puntos: 20
Respuesta: Enviar PDF por correo

no, pero no se supone que el archivo se adjunta al mensaje?
__________________
Say no more.......
  #8 (permalink)  
Antiguo 16/12/2008, 18:31
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 11 años, 7 meses
Puntos: 105
Respuesta: Enviar PDF por correo

si pero, lamentablemente, no estas adjuntando un archivo fisico, sino uno que estas generando?? o me equivoco.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #9 (permalink)  
Antiguo 16/12/2008, 18:34
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.416
Antigüedad: 18 años, 8 meses
Puntos: 20
Respuesta: Enviar PDF por correo

mmmm, pues si, pero el archivo no queda almacenado en el server, igual cuando el genera el archivo y lo abre en el navegador queda como archivo fisico o me equivoco?
__________________
Say no more.......
  #10 (permalink)  
Antiguo 16/12/2008, 18:47
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 11 años, 7 meses
Puntos: 105
Respuesta: Enviar PDF por correo

ps si al mismo instante que lo envias, se crea en el server... dale la ruta de donde se creara...
http://tuserver.com/doc.pdf
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #11 (permalink)  
Antiguo 16/12/2008, 18:50
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.416
Antigüedad: 18 años, 8 meses
Puntos: 20
Respuesta: Enviar PDF por correo

mmmm creo que ya te voy entendiendo o sea si lo estoy creando en este caso de pruebas en mi localhost seria algo como http://localhost/doc.pdf pero mi pregunta es, en que parte del script pongo esa ruta, o como la envio
__________________
Say no more.......
  #12 (permalink)  
Antiguo 16/12/2008, 19:13
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 13 años, 10 meses
Puntos: 33
Respuesta: Enviar PDF por correo

el_cesar:
Con este, eficaz y eficiente script que personalmente utilizo
con exito. Modificalo a tus necesidades.

Cita:
$archivoenviar = $_SERVER['DOCUMENT_ROOT']."/archivos/";
$archivoenviar .= "$nombre";
if(!file_exists($archivoenviar)) {
echo "<b>Archivo NO Existe!,<br>";
echo "<b>Vuelva A Intentar!!!.<br>";
echo "<b>GRACIAS!!!.<br>";
echo "<br><a href=\"index.xhtml\"><b>VOLVER<a/>";
exit();
}
$tipo = stristr($archivoenviar,'.');
$nombre = rtrim($nombre);
$nombre = strtolower($nombre);

$fp = fopen(($archivoenviar) ,"r");
$str = fread($fp, filesize($archivoenviar));
$str = chunk_split(base64_encode($str));
$fp = fclose($fp);

$message = "--MIME_BOUNDRY\n";
$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: quoted-printable\n";
$message .= "\n";
$message .= "$mensaje";
$message .= "\n";

$message .= "--MIME_BOUNDRY\n";
if(!$tipo) {
echo "<b>No Existe Tipo!.<br>";
echo "<b>Tipo De Archivo<br>";
echo "<b>ES OBLIGATORIO<br>";
echo "<br><a href=\"index.xhtml\"><b>VOLVER<a/>";
exit();
}
if($tipo == ".pdf") {
$message .= "Content-Type: application/octet-stream; name=\"$nombre\"\n";
}
$message .= "Content-disposition: attachment\n";
$message .= "Content-Transfer-Encoding: base64\n";
$message .= "\n";
$message .= "$str\n";
$message .= "\n";
$message .= "--MIME_BOUNDRY--\n";

if(!mail($destino, $asunto, $message, $headers)) {
echo "<b>Ha Ocurrido Error,<br>";
echo "<b>Intentelo Mas Tarde<br>";
echo "<b>Error Servidor De Correo<br>";
echo "<br><a href=\"index.xhtml\"><b>VOLVER<a/>";
exit();
}
EL SCRIPT CONTIENE SIETE PARTES ESENCIALES PARA PODER ENVIAR ADJUNTOS DESDE LA FUNCION MAIL A CUALQUIER CORREO EN INTERNET:
1.- UBICACION DEL ARCHIVO A ADJUNTAR Y REVISAR SI REALMENTE EXISTE.
2.- DETERMINAR EL TIPO PARA PODER ESTABLECER LOS MIME TYPES.
3.- ABRIRLO Y CODIFICARLO CON BASE64.
4.- CREAR LAS FRONTERAS MIME (MIME BOUNDARY)
5.- LA PRIMERA FRONTERA ES EL MENSAJE Y GENERALMENTE VA COMO TEXT/PLAIN
TAMBIEN PUEDE IR COMO TEXT/HTML
6.- LA SEGUNDA FRONTERA ES EL ARCHIVO EN SI, EL TIPO Y LA CODIFICACION QUE UTILIZASTES PARA ADJUNTARLO.
7.- EL ENVIO EN SI.
Cuando la comunicacion se establece entre el servidor que maneja tu correo y el servidor receptor, toda esta informacion debe ser clara y adecuadamente ordenada y codificada para que los estandares de envio de correo se cumplan y ambos servidores esten de acuerdo uno en enviar y el otro en recibir.

Saludos
Y espero te ayude

Franco
  #13 (permalink)  
Antiguo 16/12/2008, 21:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 9 meses
Puntos: 2135
Respuesta: Enviar PDF por correo

Mmmm estoy revisando la documentación de PHPMailer y no tiene un método AddStringAttachment...

Creo de ahi viene tu problema.

Saludos.
  #14 (permalink)  
Antiguo 16/12/2008, 21:54
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.416
Antigüedad: 18 años, 8 meses
Puntos: 20
franco, muchas gracias por el script pero para serte sincero no entiendo bien como usarlo, o sea se lo adiciono al que tengo con phpmailer? dejando las variables que ya tengo y lo ubico despues de generar el archivo? o lo debo poner en una nueva pagina

Cita:
Iniciado por GatorV Ver Mensaje
Mmmm estoy revisando la documentación de PHPMailer y no tiene un método AddStringAttachment...

Creo de ahi viene tu problema.

Saludos.


GatorV pero mira que en www.fpdf.org en la seccion faqs fue que encontre la forma de hacerlo y asi es que lo estoy utilizando pero no da

esto es lo que dice.

Código:
#

15. ¿Cómo puedo enviar el PDF por correo electrónico?
Como cualquier otro archivo, pero una forma fácil es usar PHPMailer y esta es una forma de adjuntarlo: archivo desde la memoria:

$mail = new PHPMailer();
...
$doc = $pdf->Output('', 'S');
$mail->AddStringAttachment($doc, 'doc.pdf', 'base64', 'application/pdf');
$mail->Send();
o sera que estoy haciendo algo mal?, insisto en que si le doy el parametro S al output como dice aqui no me da resultado porque ni me muestra el archivo en el navegador ni lo envia por correo
__________________
Say no more.......

Última edición por GatorV; 16/12/2008 a las 22:51
  #15 (permalink)  
Antiguo 16/12/2008, 22:53
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 9 meses
Puntos: 2135
Respuesta: Enviar PDF por correo

El parametro S es para que te lo deje en una variable, en este caso $doc, y lo puedes ver ya que al hacer el var_dump() ves el contenido en binario.

Estoy buscando en el sitio oficial de PHPMailer y no viene esa funcion, checa que la version que descargaste tiene soporte para usar ese metodo ya que es probable que por eso sea tu error.

Edito:
Descarge y si en efecto existe AddStringAttachment, mmm muy raro que te llegue como 0kb, prueba enviar un archivo que no tengas que generar a ver si te causa el mismo problema

Saludos.
  #16 (permalink)  
Antiguo 17/12/2008, 10:15
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.416
Antigüedad: 18 años, 8 meses
Puntos: 20
Respuesta: Enviar PDF por correo

Gator no se que paso pero ahora si funciona y no le he movido nada, le deje el parametro en S y ya me envia el archivo bien por correo, pero mi duda es, como hago para qe me lo muestre en el navegador y al mismo tiempo lo envie, o no se puede?
__________________
Say no more.......
  #17 (permalink)  
Antiguo 17/12/2008, 10:49
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 9 meses
Puntos: 2135
Respuesta: Enviar PDF por correo

Tendrias que hacer dos llamados a $pdf->output, el primero con el 'S' para enviar el correo y el otro con 'I' (despues de enviar el mail) para mostrarlo en el navegador.

Saludos.
  #18 (permalink)  
Antiguo 17/12/2008, 12:30
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.416
Antigüedad: 18 años, 8 meses
Puntos: 20
Respuesta: Enviar PDF por correo

Perfecto corrio muy bien, gracias a todos, aqui dejo todo el script por si le puede servir a alguien

Código:
<?php
//conecta a la base de datos
$mysql_id = mysql_connect('localhost', 'usrname', 'pss');
mysql_select_db('bd', $mysql_id);

//trae las clases fpdf y phpmailer
require ('fpdf153/fpdf.php');
require ('includes/class.phpmailer.php');


//recibe variables del formulario
$placa=$_GET['placa'];
$empresa=$_GET['empresa'];

//crea el pdf
$pdf=new FPDF('P','cm','letter');
$pdf->AddPage();
$pdf->SetFont('Arial','',12);


//Consultas que se utilizan 
$sql="SELECT * FROM viaje WHERE vehiculo = '".$placa."'";
$sql2="SELECT * FROM contratante WHERE cedula_nit = '".$empresa."'";
$sql3="SELECT * FROM vehiculo WHERE placa = '".$placa."'";

//Ejecuta las consultas
$resultado = mysql_query($sql) or die( mysql_error());
$resultado2 = mysql_query($sql2) or die( mysql_error());
$resultado3 = mysql_query($sql3) or die ( mysql_error());

while( $row = mysql_fetch_assoc($resultado)) {
       $row2 = mysql_fetch_assoc($resultado2);
       $row3 = mysql_fetch_assoc($resultado3);
  
//cambia formato a la fecha para poder presentarla como dd-mm-aa
$fecha_salida = strtotime($row['fecha_salida']);
$feha_regreso = strtotime($row['fecha_regreso']);
 


//arma el pdf ubicando cada campo traido de la base de datos en una posicion especifica en la hoja SetY lo ubica verticalmente y Setx lo hace horizontalmente
$pdf->SetY(7.5); 
$pdf->SetX(6);
$pdf->Cell(0,0,$row['origen']);
$pdf->SetY(8.1); 
$pdf->SetX(6);
$pdf->Cell(0,0,$row['destino']);
$pdf->SetY(8.7);
$pdf->SetX(6.8);
$pdf->Cell(0,0,date("d-m-Y", $fecha_salida));
$pdf->SetY(8.7);
$pdf->SetX(15.5);
$pdf->Cell(0,0,date("d-m-Y", $fecha_regreso));
$pdf->SetY(9.3);
$pdf->SetX(6.8);
$pdf->Cell(0,0,$row2['Empresa']);
$pdf->SetY(10.3);
$pdf->SetX(3);
$pdf->Cell(0,0,$row['objeto']);
$pdf->Sety(11.3);
$pdf->SetX(3);
$pdf->Cell(0,0,$row['observaciones']);
$pdf->Sety(12.7);
$pdf->SetX(4.7);
$pdf->Cell(0,0,$row3['placa']);
$pdf->Sety(13.1);
$pdf->SetX(4.7);
$pdf->Cell(0,0,$row3['modelo']);
$pdf->Sety(13.4);
$pdf->SetX(5.5);
$pdf->Cell(0,0,$row3['tarjeta_operacion']);
$pdf->Sety(12.7);
$pdf->SetX(12.3);
$pdf->Cell(0,0,$row3['marca']);
$pdf->Sety(13.1);
$pdf->SetX(12.8);
$pdf->Cell(0,0,$row3['no_interno']);
$pdf->Sety(13.4);
$pdf->SetX(12.6);
$pdf->Cell(0,0,$row3['vencimiento_t_o']);

//Se crea el formato de correo a Enviar
$mail=new PHPMailer();
$mail->Mailer="smtp";
$mail->Helo = "www.dominio.com"; //Muy importante para que llegue a hotmail y otros
$mail->SMTPAuth=true;
$mail->Host="smtp.tuserver.com";
$mail->Port=25; //depende de lo que te indique tu ISP. El default es 25, pero nuestro ISP lo tiene puesto al 26
$mail->Username="[email protected]";
$mail->Password="******";
$mail->From="[email protected]";
$mail->FromName="El Nombre del Remitente";
$mail->Timeout=60;
$mail->IsHTML(true);

//Enviamos el correo
$mail->AddAddress('[email protected]'); //Puede ser Hotmail
$mail->Subject='tu asunto';

//Creamos una salida para ver el documento en el navegador
$pdf->Output('extracto /' .$row3['no_interno'].'/'.date("d-m-Y", $fecha_salida).'','I');

//Creamos el documento como String para poder enviarlo como archivo adjunto
$doc=$pdf->Output('extracto /' .$row3['no_interno'].'/'.date("d-m-Y", $fecha_salida).'','S');
$mail->AddStringAttachment($doc, 'extracto /' .$row3['no_interno'].'/'.date("d-m-Y", $fecha_salida).'', 'base64', 'application/pdf');
$mail->Send();

}



?>
__________________
Say no more.......
  #19 (permalink)  
Antiguo 17/12/2008, 13:47
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 11 años, 7 meses
Puntos: 105
Respuesta: Enviar PDF por correo

pero como que si nos sirve si no das lo sigueinte:
require ('fpdf153/fpdf.php');
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #20 (permalink)  
Antiguo 17/12/2008, 13:49
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.416
Antigüedad: 18 años, 8 meses
Puntos: 20
Respuesta: Enviar PDF por correo

Cita:
Iniciado por masterojitos Ver Mensaje
pero como que si nos sirve si no das lo sigueinte:
require ('fpdf153/fpdf.php');

esa es la rua que uso donde tengo la clase fpdf puedes descargarla de www.fpdf.org
__________________
Say no more.......
  #21 (permalink)  
Antiguo 18/12/2008, 15:38
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.416
Antigüedad: 18 años, 8 meses
Puntos: 20
Respuesta: Enviar PDF por correo

Bueno gente volvi porque se me presento un problema con el script, resulta que ejecutandolo desde mi localhost envia hace todo el proceso sin problemas, es decir, muestra el archivo en el navegador y lo envia por correo, pero cuando lo subo al host y lo pruebo, solo muestra el archivo en el navegador y no lo envia al correo, y lo subi exactamente igual, lo unico que modifique fue la configuracion de la BD
__________________
Say no more.......
  #22 (permalink)  
Antiguo 18/12/2008, 15:40
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 9 meses
Puntos: 2135
Respuesta: Enviar PDF por correo

Necesitas tambien modificar las directivas del servidor SMTP, ya que si no es el mismo que en tu localhost te va a dar problemas.

Saludos.
  #23 (permalink)  
Antiguo 18/12/2008, 15:44
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.416
Antigüedad: 18 años, 8 meses
Puntos: 20
Respuesta: Enviar PDF por correo

pues casualmente el servidor que estoy usando en el localhost es uno que corresponde al host al que la subi, o sea a mi host de goddady, que es smptout.secureserver.net
__________________
Say no more.......
  #24 (permalink)  
Antiguo 18/12/2008, 15:49
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 9 meses
Puntos: 2135
Respuesta: Enviar PDF por correo

Mmm muy raro, tendrias que ver el resultado de tu función PHPMailer::send(), prueba guardarlo o algo asi por el estilo:
Código php:
Ver original
  1. if(!$mail->Send()) {
  2.       echo "Error al enviar el archivo!" . $mail->Error();
  3. } else {
  4.       $pdf->Output('extracto /' .$row3['no_interno'].'/'.date("d-m-Y", $fecha_salida).'','I');
  5.  
  6. }

Saludos.
  #25 (permalink)  
Antiguo 18/12/2008, 16:02
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.416
Antigüedad: 18 años, 8 meses
Puntos: 20
Respuesta: Enviar PDF por correo

bueno, pues le anexe esas lineas al codigo pero me arroja esto

Cita:
Warning: fsockopen() [function.fsockopen]: unable to connect to smtpout.secureserver.net:25 (Connection timed out) in /home/content/c/e/j/cejarcon/html/everest/extract/includes/class.smtp.php on line 87
y ni lo envia ni lo muestra en el navegador

pero lo corro desde el localhost sin esas lineas y corre normal
__________________
Say no more.......
  #26 (permalink)  
Antiguo 18/12/2008, 16:05
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 9 meses
Puntos: 2135
Respuesta: Enviar PDF por correo

Pues ahi esta la causa de tu error, la clase PHP Mailer no se puede conectar al servidor SMTP, levanta un ticket de soporte puede que haya algun problema con la red o la comunicacion entre tu host y ese server.

Saludos.
  #27 (permalink)  
Antiguo 18/12/2008, 16:07
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.416
Antigüedad: 18 años, 8 meses
Puntos: 20
Respuesta: Enviar PDF por correo

pero como entonces si lo corre desde el localhost?
__________________
Say no more.......
  #28 (permalink)  
Antiguo 18/12/2008, 16:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 9 meses
Puntos: 2135
Respuesta: Enviar PDF por correo

Porque tu servidor no es lo mismo que el localhost, es por eso que tienes que levantar un ticket de soporte para que vean porque desde tu host no se pueden comunicar a ese smtp, ya que ahi el error te lo dice (time_out), es que no recibio respuesta.

Si sabes un poco de redes puedes saber que a veces las mismas rutas que sirven en un lugar no sirven en otro lugar.

Saludos.
  #29 (permalink)  
Antiguo 18/12/2008, 16:17
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.416
Antigüedad: 18 años, 8 meses
Puntos: 20
ooooook, mchas gracias, ya abri el ticket, vamos a ver que pasa

bueno, problema resuelto me dio por probar cambiando el puerto y funciono, lo pase del 25 al 80 y corrio bien, que raro porque hasta donde tengo entendido el 80 es para web
__________________
Say no more.......
  #30 (permalink)  
Antiguo 18/12/2008, 16:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 9 meses
Puntos: 2135
Respuesta: Enviar PDF por correo

Llego el correo usando el puerto 80? muy raro.. claro el puerto 80 es para Web, y el 25 para SMTP, pero pues como hay flexibilidad y todo pueden haber movido el puerto al 80.

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 20:48.