Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Mandare mail con FPDF

  1. #1

    Mandare mail con FPDF

    Buongiorno ragazzi,
    ho una domanda da farvi.
    dopo aver creato un file pdf con FPDF vorrei poterlo mandare automaticamente per mail.
    Ho visto un pò in rete ma non sono riuscito a trovare niente per farlo funzionare, io ho questo codice:

    Codice PHP:
    require('fpdf.php'); 
    //Cell(float w [, float h [, string txt [, mixed border [, int ln [, string align [, boolean fill [, mixed link]]]]]]]) 
    class PDF extends FPDF // Page header function Header() { // Logo //Image(string file [, float x [, float y [, float w [, float h [, string type [, mixed link]]]]]]) 
    $this->Image('logo.png',15,11,40,8); // Arial bold 15 
    $this->SetFont('Arial','B',15); // Move to the right $this->Cell(80); // Title
     
    $this->Cell(30,10,'Fattura',0,0,'C'); // Line break 
    $this->Ln(20); } // Page footer function Footer() { // Position at 1.5 cm from bottom $this->SetY(-15); // Arial italic 8
     
    $this->SetFont('Arial','I',8); // Page number $this->Cell(0,10,'Pagina '.$this->PageNo().'/{nb}',0,0,'C'); } } 
    $variabilestampa $_POST['data']; 
    $pdf = new PDF(); $pdf->AliasNbPages();
     
    $pdf->AddPage(); 
    $pdf->SetFont('Times','',12); 
    $pdf->Cell(0,20,'',0,2,'L'); 

     
    $pdf->Cell(0,5,'Gentile Sig.'.$variabilestampa[0].',',0,2,'L'); 
    $pdf->Cell(0,5,'',0,2,'L'); 
    $pdf->Cell(0,5,'in seguito al suo contratto per la macchina modello '.$variabilestampa[2].' '.$variabilestampa[1].' ',0,2,'L'); 
    $pdf->Cell(0,5,'le inviamo fattura di noleggio degli ultimi'.$variabilestampa[6].' mesi, per un totale di Euro '.$variabilestampa[7].'.',0,2,'L'); 
    $pdf->Cell(0,5,'',0,2,'L'); $pdf->Cell(0,5,'A queste si aggiungono nr.'.$variabilestampa[3].' di cui nr. '.$variabilestampa[4].' comprese nel contratto, per un totale di Euro '.$variabilestampa[5],0,2,'L'); 
    $pdf->Cell(0,5,'',0,2,'L'); 
    $pdf->Cell(0,5,'Totale della fattura : '.$variabilestampa[8],0,2,'L'); 
    $pdf->Cell(0,20,'',0,2,'L'); $pdf->Cell(0,5,'Macchina: '.$variabilestampa[2],0,2,'L'); $pdf->Cell(0,5,'Totale euro contratto: '.$variabilestampa[3],0,2,'L'); $pdf->Cell(0,5,'Totale mesi contratto: '.$variabilestampa[4],0,2,'L'); 
    $pdf->Cell(0,5,'Altra voce: '.$variabilestampa[5],0,2,'L'); 
    $pdf->Cell(0,5,'Nr. mesi fatturati: '.$variabilestampa[6],0,2,'L');
     
    $pdf->Cell(0,5,'Totale euro nolo periodo : '.$variabilestampa[7],0,2,'L'); 
    $pdf->Cell(0,5,'Giorni trascorsi: '.$variabilestampa[8],0,2,'L'); 
    $pdf->Cell(0,5,'',0,2,'L'); 
    $pdf->Output(); 
    Il file pdf viene tranquillamente creato.
    In rete ho trovato questo codice, ma anche se non mi da errori di sorta non fa neanche niente.


    Codice PHP:
    $to "myemail@example.com"
    $from "me@example.com"
    $subject "send email with pdf attachment"
    $message "

    Please see the attachment.</p>"
    // a random hash will be necessary to send mixed content 
    $separator md5(time()); // carriage return type (we use a PHP end of line constant) $eol = PHP_EOL; // attachment name $filename = "test.pdf"; // encode data (puts attachment in proper format) $pdfdoc = $pdf->Output("", "S"); 
    $attachment chunk_split(base64_encode($pdfdoc)); // main header 

    $headers "From: ".$from.$eol
    $headers .= "MIME-Version: 1.0".$eol$headers .= "Content-Type: multipart/mixed; boundary=\"".$separator."\""// no more headers after this, we start the body! // 

    $body "--".$separator.$eol
    $body .= "Content-Transfer-Encoding: 7bit".$eol.$eol
    $body .= "This is a MIME encoded message.".$eol// message 
    $body .= "--".$separator.$eol$body .= "Content-Type: text/html; charset=\"iso-8859-1\"".$eol
    $body .= "Content-Transfer-Encoding: 8bit".$eol.$eol$body .= $message.$eol// attachment 
    $body .= "--".$separator.$eol$body .= "Content-Type: application/octet-stream; name=\"".$filename."\"".$eol
    $body .= "Content-Transfer-Encoding: base64".$eol
    $body .= "Content-Disposition: attachment".$eol.$eol
    $body .= $attachment.$eol$body .= "--".$separator."--"// send message 
    mail($to$subject$body$headers); 
    Chiaramente gli indirizzi mail li ho cambiati oppurtunamente
    Potete aiutarmi ? Grazie

  2. #2
    Devi cercare come inviare mail con allegati.

  3. #3
    Dovrebbe mandare la pagina creata 'on the fly', senza che salvi niente su Hdd.
    Ho solo la classe php mailer, non è che serve altro ? (Pear, ecc.)

    grazie

  4. #4
    Cambiando un pò di cose sono riuscito a risolvere almeno in parte, ma ora mi esce questo errore:

    Warning: mail(): Failed to connect to mailserver at "127.0.0.1" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set()

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.