Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Mail con allegato

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    11

    Mail con allegato

    Sto impazzendo ...
    dopo svariate ricerche e milioni di prove per fare partire un email con allegao da una form questo è il risultato:

    codice:
    <?php 
       $to="daniel.ferrarini@gmail.com"; 
       $subject="p4f formMail"; 
       $body = "prova messaggio"; 
    
       $tmp_name = $_FILES['Filedata']['tmp_name'];
       $type = $_FILES['Filedata']['type']; 
       $name = $_FILES['Filedata']['name']; 
    
             $body .= "nnIn allegato il file: $nome"; 
             $file = fopen($address,'rb'); 
             $data = fread($file,filesize($address)); 
             fclose($file);      
    
             $semi_rand = md5(time()); //imposto il MIME boundary per gli header (stringa unica)
    $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
    // setto gli headers
    $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\"";
    // setto la codifica della mail
    $testo_email .= "This is a multi-part message in MIME format.\n\n" . "–{$mime_boundary}\n" . "Content-Type:text/html; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" .$testo_email .= "\n\n";
    $data = chunk_split(base64_encode($data)); //codifico il file…
    // …e lo allego alla mail
    $testo_email .= "–{$mime_boundary}\n" . "Content-Type: {$type};\n" . " name=\"{$name}\"\n" . "Content-Transfer-Encoding: base64\n\n" . $data .= "\n\n–{$mime_boundary}–\n";
    // ora posso inviare la mail normalmente
    $ok = @mail($to, $subject, $testo_email, $headers);
    if($ok) {
    echo "La mail è stata inviata con successo!";
    } else {
    die("Errore: la mail non può essere spedita.");
    }
    ?>
    L'email arriva con tutto...ma senza allegato...il codice, girando nel web e sul presente sito, nn sembra presentare errori...qualcuno mi può aiutare a capire dove sbaglio? grazie

    edit: scusate..piccola correzione al codice dove c'e $address ho messo $tmp_name ma cmq non arriva l'allegato, vorrei anke puntualizzare che se prendo il percorso del file in fase di up (che trovo in tmp_name) e lo sposto in una cartella mi copia li il file, quindi esso viene caricato perfettamente ma non riportato come allegato alla mail.

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    107
    Usa la classe phpmailer...scaricala online

    questo è il codice per spedire un'email ad un indirizzo preso da un form..

    codice:
    <?php
    $email=$_POST['email']; //indirizzo email preso dal form
    require("class.phpmailer.php");
    require("class.smtp.php");
    
    
    $mail = new PHPMailer(true);
      $mail->Host       = ""; // SMTP server
      $mail->SMTPDebug  = 2;                     // enables SMTP debug information (for testing)
      $mail->SMTPAuth   = true;                  // enable SMTP authentication
      $mail->Host       = ""; // sets the SMTP server
      $mail->Port       = 26;                    // set the SMTP port for the GMAIL server
      $mail->Username   = ""; // SMTP account username
      $mail->Password   = "";        // SMTP account password
    $mail->From     = ""; //indirizzo mittente
    $mail->FromName = ""; //nome mittente
    $mail->AddAddress("$email");
    //$mail->AddAddress("altro@gmail.com");               // optional name
    $mail->AddReplyTo("programmo@yahoo.it","Information");
    
    $mail->WordWrap = 50;                              // set word wrap
    
    $mail->AddAttachment("File.pdf"); //metti il percorso dell'allegato che vuoi inviare
    
    $mail->IsHTML(true);                               // send as HTML
    
    $mail->Subject  =  "";
    $mail->Body     =  ""; 
    $mail->AltBody  =  "Questo è il corpo alternativo";
    $mail->Send();

  3. #3
    Utente di HTML.it L'avatar di costi31
    Registrato dal
    Nov 2007
    Messaggi
    345
    Originariamente inviato da dani_ajl
    Usa la classe phpmailer...scaricala online
    Quoto , è molto meglio usare la classe PHPMailer, la puoi scaricare da questo sito [URL]http://phpmailer.worxware.com/[URL]
    Sul sito trovi anche degli esempi per utilizzarla, qui viene inviata una email con allegati usando la funzione AddAttachment() di PHPMailer.

  4. #4
    Utente di HTML.it L'avatar di costi31
    Registrato dal
    Nov 2007
    Messaggi
    345
    Originariamente inviato da dani_ajl
    Usa la classe phpmailer...scaricala online
    Quoto , è molto meglio usare la classe PHPMailer, la puoi scaricare da questo sito [URL]http://phpmailer.worxware.com/[URL]
    Sul sito trovi anche degli esempi per utilizzarla, qui viene inviata una email con allegati usando la funzione AddAttachment() di PHPMailer.


    EDIT:
    Chiedo scusa agli amministratori per il doppio post, vi chiedo di cancellare il mio post precedente perchè non riesco, grazie.

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.