Foros del Web » Programando para Internet » PHP »

enviar un archivo PDF por email

Estas en el tema de enviar un archivo PDF por email en el foro de PHP en Foros del Web. hola amigos como están... tengo un problema. deseo enviar un archivo pdf como correo adjunto. la idea es la siguiente. estoy viendo un reporte cuyos ...
  #1 (permalink)  
Antiguo 05/05/2008, 08:54
Avatar de Devil  
Fecha de Ingreso: agosto-2003
Ubicación: Cartagena
Mensajes: 59
Antigüedad: 21 años, 3 meses
Puntos: 0
Pregunta enviar un archivo PDF por email

hola amigos como están... tengo un problema.
deseo enviar un archivo pdf como correo adjunto.
la idea es la siguiente. estoy viendo un reporte cuyos datos saco de un base de datos MySql, quiero que al yo pulsar un boton enviar este reporte se envie como archivo adjunto a la persona indicada.

estoy usando la Clase FPDF y una funcion cmailer para enviar correos aqui abajo les coloco la clase cmailer:

Class cmailer:

class cMailer{

var $_Addresses;
var $_countAdd = 0;
var $_ConexionSMTP;
var $_Sender;
var $_server;
var $_Subject = "";

function cMailer(){
}

function AddAddress($address){
$this->_Addresses[$this->_countAdd] = $address;
$this->_countAdd++;
}

function AddSender($sender){
$this->_Sender = $sender;
}

function AddMessage($message){
$this->_Message = $message;
}

function AddSubject($subject){
$this->_Subject = $subject;
}

function Send(){

$strEHLO = "HELO ".$this->_server."\r\n";
fputs($this->_ConexionSMTP,$strEHLO);

$strMAIL = "MAIL FROM: ".$this->_Sender."\r\n";
fputs($this->_ConexionSMTP,$strMAIL);

for($i=0;$i<$this->_countAdd;$i++){
$strRCPT .= "RCPT TO: ".$this->_Addresses[$i]."\r\n";
}
$strRCPT .= "\r\n";
fputs($this->_ConexionSMTP,$strRCPT);


$strDATA1 = "DATA\r\n";
fputs($this->_ConexionSMTP,$strDATA1);


if($this->_Subject != ""){

$strS = "Subject: ".$this->_Subject."\r\n\r\n";
fputs($this->_ConexionSMTP,$strS);
}


$strDATA2 = $this->_Message."\r\n.\r\n";
fputs($this->_ConexionSMTP,$strDATA2);

fputs($this->_ConexionSMTP,"QUIT\r\n");
fclose($this->_ConexionSMTP);

}

function AddHost($host,$port=25){
$this->_ConexionSMTP = fsockopen("$host","$port",$e,$em,5) or die("no puedorl");
echo fgets($this->_ConexionSMTP,4096);
$this->_server = $host;
}

}
__________________
Devil...La Verdad Os Hara Libres...El Conocimiento Invensible
  #2 (permalink)  
Antiguo 05/05/2008, 09:09
Avatar de .php  
Fecha de Ingreso: julio-2006
Mensajes: 481
Antigüedad: 18 años, 4 meses
Puntos: 5
Re: enviar un archivo PDF por email

si quieres enviar un adjunto por mail te recomiendo que bajes la clase phpmailer.
y con este codigo te servira. solo copy y paste :D

Código PHP:
function SendMail($nombre$to$from$body$subject$id$portada$username$password$smtp$port){
    
$mail                   =    new PHPMailer();
    
$mail->From             =    $from;
    
$mail->FromName         =    $nombre;
    
$mail->Mailer             =    'mail';
    
$mail->IsSMTP();
    
$mail->SMTPAuth         =    true;
    
$mail->Username         =    $username;
    
$mail->Password            =    $password;
    
$mail->Port                =    $port;     
    
$mail->Host                =    $smtp;
    
$mail->AddReplyTo("","");
    
$mail->AddAddress($to,""); 
    
$mail->WordWrap    50;    
    
$mail->IsHTML(true);    // Activamos el formato HTML
    
$mail->AddEmbeddedImage($portada"imagen""imagen.jpg");    
    
$imagen                    =    "<img src='cid:imagen' alt=''>";
    
$mail->Subject            =    $subject;
    
$mail->Body                =    $body;
    
$mail->AltBody            =    "";
    
$arch                      =       "/tmp/file.pdf";
    
$mail->AddAttachment($arch,"file.pdf");
    if(
$mail->Send())
    {
        echo 
"Mail enviado exitosamente";
    }else{
        echo 
"Correo $to no enviado<br>";
    }
    
//sleep(10);

__________________
~~[FiDeLio]~~
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 12:50.