Tag Archive for 'mail'

Tenere traccia dei download con la mail

Con poche righe di script è possibile tenere traccia di chi decide di scaricare un file da un nostro sito. Interessante ad esempio nel caso in cui si dà la possibilità di scricare un progetto che richiederà aggiornamenti futuri. Ad esempio può essere utile chiedere la mail all'utente che decide di scaricare il file, con un form del genere...

HTML:
  1. <form name="DownloadForm"  method="post" action="download.php">
  2.   You Email<input name="email_utente" type="text"><br>
  3.   <input type="submit" name="Submit" value="Download">
  4.   <input name="file" type="hidden"  value="nomefile.zip">
  5. </form>

... che punta al file download.php (simile a questo) il quale si occuperà di far scaricare il file ed inviare la mail dell'avvenuto download.

PHP:
  1. <?php
  2. // recupero i dati e definisco le variabili
  3. $file=$_POST['file'];
  4. $email_utente=$_POST['email_utente'];
  5. $mia_email="mia@email.com";
  6. $oggetto="Download File";
  7. $corpo="Il File ".$file." è stato scaricato da ".$email_utente;
  8.  
  9. // mi invio la mail
  10. mail($mia_email, $oggetto, $corpo);
  11.  
  12. // faccio scaricare il file
  13. $percorso="/var/percorso/directory/download/";
  14. $percorso_file=$percorso.$file;
  15. $dimensione_file=filesize($percorso_file);
  16. header("Content-Type: application; name=".$file);
  17. header("Content-Transfer-Encoding: binary");
  18. header("Content-Length: ".$dimensione_file);
  19. header("Content-Disposition: inline; filename=".$file);
  20. header("Expires: 0");
  21. header("Cache-Control: no-cache, must-revalidate");
  22. header("Cache-Control: private");
  23. header("Pragma: public");
  24. readfile($percorso_file);
  25. ?>

Appunti: implementare eventuali controlli

Inviare una mail in modo semplice

La funzione che permette di inviare mail in php è mail():
mail(destinatario, oggetto, corpo, headers)
Per sfruttare questa funzione nel modo più semplice possibile è sufficente specificare destinatario, oggetto, e corpo (messaggio) della mail. Il paramentro headers è opzionale (te lo spiegherò poi)
Ecco come fare.

PHP:
  1. <?php
  2. $destinatario="indirizzo@destinatario.com";
  3. $oggetto="Oggetto della maill";
  4. $corpo="Questo è il testo che vuoi inviare";
  5. mail($destinatario, $oggetto, $corpo);
  6. ?>