Torna indietro   AlterVista | Spazio web gratis, hosting free php mysql > L'angolo del webmaster > PHP, MySql e Apache (.htaccess)

Rispondi
 
LinkBack Strumenti discussione Modalità visualizzazione
  #1 (permalink)  
Vecchio 12-04-2009, 14.59.15
Neofita
 
Data registrazione: 04-12-2007
Messaggi: 17
Predefinito [php] Inviare mail con allegato e codice html...non mi funziona...

Sorgente del file html:
Codice HTML:
<form action="invia.email.php" method="POST" enctype="multipart/form-data">
<table border="0">
<tr>
  <td>Destinatario:</td>
  <td><input type="text" name="destinatario" value="" /></td>
</tr>
<tr>
  <td>Mittente:</td>
  <td><input type="text" name="mittente" value="" /></td>
</tr>
<tr>
  <td>Oggetto:</td>
  <td><input type="text" name="oggetto" value="" /></td>
</tr>
<tr>
  <td>Messaggio:</td>
  <td><textarea cols="20" rows="4" name="messaggio"></textarea></td>
  </tr>
<tr>
  <td>Allega file:</td>
  <td><input type="file" name="allegato" /></td>
</tr>
<tr>
  <td colspan="2"><input type="submit" value="Invia" /></td>
</tr>
</table>
</form>
Sorgente del file invia.email.php:
Codice PHP:
<?php

// Recupero le informazioni usciti dal form:
$destinatario $_POST['destinatario']; // Recupero il destinatario.
$mittente $_POST['mittente']; // Recupero il mittente/falsa e-mail.
$oggetto $_POST['oggetto']; // Recupero l'oggetto del messaggio.
$messaggio $_POST['messaggio']; //Recupero il testo del messaggio

// Variabili relative all'allegato
$allegato $_FILES['allegato']['tmp_name'];
$allegato_type $_FILES['allegato']['type'];
$allegato_name $_FILES['allegato']['name'];

// Creo 2 variabili che riempirò più avanti...
$headers "From: " $mittente;
$msg "";

// Verifico se il file è stato caricato correttamente via HTTP:
// In caso affermativo proseguo nel lavoro...
if (is_uploaded_file($allegato))
{
  
// Apro e leggo il file che è stato allegato:
  
$file fopen($allegato,'rb');
  
$data fread($filefilesize($allegato));
  
fclose($file);

  
// Adatto il file al formato MIME base64 usando base64_encode
  
$data chunk_split(base64_encode($data));

  
/* Genero il "separatore":
  Serve per dividere, appunto, le varie parti del messaggio.
  Nel nostro caso separerà la parte testuale dall'allegato. */
  
$semi_rand md5(time());
  
$mime_boundary "==Multipart_Boundary_x{$semi_rand}x";
  
  
// Aggiungo le intestazioni necessarie per l'allegato
  
$headers .= "\nMIME-Version: 1.0\n";
  
$headers .= "Content-Type: multipart/mixed;\n";
  
$headers .= " boundary=\"{$mime_boundary}\"";

  
// Definisco il tipo di messaggio (MIME/multi-part)
  
$msg .= "This is a multi-part message in MIME format.\n\n";

  
// Metto il separatore
  
$msg .= "--{$mime_boundary}\n";

  
// Questa è la parte "testuale" del messaggio
  
$msg .= "Content-Type: text/html; charset=\"iso-8859-1\"\r\n";
  
$msg .= "Content-Transfer-Encoding: 7bit\r\n";
  
$msg .= $messaggio "\n\n";

  
// Metto il separatore
  
$msg .= "--{$mime_boundary}\n";

  
// Aggiungo l'allegato al messaggio
  
$msg .= "Content-Disposition: attachment;\n";
  
$msg .= " filename=\"{$allegato_name}\"\n";
  
$msg .= "Content-Transfer-Encoding: base64\n\n";
  
$msg .= $data "\n\n";

  
// Chiudo con il separatore
  
$msg .= "--{$mime_boundary}--\n";
}
else
{
  
$msg $messaggio;
}

// Invio l'email
if (mail($destinatario$oggetto$msg$headers))
{
  echo 
"<p>Email inviata con successo!</p>";
}else{
  echo 
"<p>Errore nell'invio dell'email! Riprova!</p>";
}
?>
Non riesco a capire cosa ci sia che non va nel codice php...come faccio ad inviare un codice html nel messaggio (invece di semplice testo)...gli allegati e tutte le altre cose funzionano...per favore aiutatemi, ciao ciao
Rispondi citando
  #2 (permalink)  
Vecchio 14-04-2009, 14.42.49
Neofita
 
Data registrazione: 04-12-2007
Messaggi: 17
Predefinito

Perchè nessuno mi aiuta :(...
Rispondi citando
Rispondi

Strumenti discussione
Modalità visualizzazione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Disattivato
Trackbacks are Attivato
Pingbacks are Attivato
Refbacks are Disattivato



Tutti gli orari sono GMT +1. Adesso sono le 06.52.35.