Ciao,
vorrei sapere come si inseriscono allegati in una mail tramite un form e usando la funzione mail() di php. Questo include un upload?
Grazie :=):
Ciao,
vorrei sapere come si inseriscono allegati in una mail tramite un form e usando la funzione mail() di php. Questo include un upload?
Grazie :=):
Per inviare una e-mail con attachment devi fare così:
-----------------------------------------------
$mail_boundary = md5(uniqid(time()));
$mail_headers = "From: pippo@pluto.it\n";
$mail_headers .= "Reply-To: pippo@pluto.it\n";
$mail_headers .= "X-Priority: 1 (Highest)\n";
$mail_headers .= "MIME-Version: 1.0\r\n";
$mail_headers .= "Content-type: multipart/mixed; boundary=\"$mail_boundary\"";
$mail_headers .= "\r\n\r\n";
$mail_headers .= "This is a multi-part message in MIME format. ";
$mail_headers .= "\r\n\r\n";
#$mail_headers .= "X-Mailer: PHP/" . phpversion();
### attenzione questa parte la devi utilizzare se il tuo file è nel tuo spazio web ####
$userfile = "tuofile.doc";
$fp = fopen($userfile, "r");
$file = fread($fp, filesize($userfile));
$file = chunk_split(base64_encode($file));
#### fine ####
$mail_body = "--$mail_boundary\n";
$mail_body .= "Content-type:text/plain; charset=US-ASCII\r\n";
$mail_body .= "Content-transfer-encoding:8 bit\r\n\r\n";
$mail_body .= "bla bla bla,\n";
$mail_body .= "bla bla bla\n";
$mail_body .= "--$mail_boundary\n";
$filename = basename($userfile);
$mail_body .= "Content-type:application/octet-stream; name=$filename\r\n";
$mail_body .= "Content-transfer-encoding:base64\r\n\r\n";
$mail_body .= $file . "\r\n\r\n";
$mail_body .= "--$mail_boundary--\r\n";
$ris = mail("$email", $subject, $mail_body, $mail_headers);
-------------------------------------------------------
Per quanto riguarda la parte del form non dovrebbe essere difficile...
dal tuo form prendi le info in questo modo:
$data = addslashes(fread(fopen($_FILES['file']['tmp_name'], 'rb'), $_FILES['file']['size']));
$file_name = $_FILES['file']['name']; #importante
$file_type = $_FILES['file']['type']; #importante
$file_size = $_FILES['file']['size'];
In $data hai il contenuto del file... le altre variabili si intuiscono bene....
Il form deve fare una cosa del genere:
<?
<form action=\"{$_SERVER['PHP_SELF']}\" method=\"POST\" enctype=\"multipart/form-data\">
<input type=\"file\" name=\"file\" size=\"40\">
<input type=\"submit\" value=\"Invia il file\" name=\"invia\">
</form>
?>
Naturalmente gli altri pezzi li devi mettere a posto tu... all'incirca il giochino funziona così
Ciao
Grazie :grin: