Prima di tutto mi scuso per il titolo del post che è poco chiaro.
Inoltre devo fare ancora una premessa prima di esporre le mie domande.
Si stratta di DUE problemi correlati di cui sono già presenti on-line moltissimi post su diversi forum.
In nessuno di loro è però possibile trovare una risposta definitiva ed "elegante".
La ragione credo sia nel fatto che pochi lettori hanno compreso l'utilità di certe domande di cui è possibile trovare soluzioni "alternative".
Di TUTTE le domande sotto riportate non ho trovato risposte e ho dovuto rimediare con delle alternative.
Attendo eventuali nuove risposte e vostri commenti....
Partiamo dall'inizio:
1)
** problema **
Si vuole inviare e-mail da pagine php in LOCALE (localhost) MA i server di posta smtp richiedono l'autenticazione.
** DOMANDA **
E' possibile specificare utente e password in modo che la funzione mail() sia in grado si funzionare in locale?
** alternativa **
In passato si consigliava di utilizzare il server di posta di libero.it ma oggi anche questo server richiede l'autenticazione.
Ad oggi non conosco server che possano essere utilizzati in alternativa.
Dopo varie ricerche su internet come soluzione ho trovato lo script PHPMailer.
http://<br />
<a href="http://phpma...om/</a> <br />
Con questo script è possibile impostare utente e password e lavorare anche dal locale.
Ecco un estratto del codice che utilizza PHPMailer :
codice:
...
require("class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP(); // set mailer to use SMTP
$mail->Host = "smtp.xxxx.it"; // specify main and backup server
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "nome@xxxx.it"; // SMTP username
$mail->Password = "pass********";
...
...
$mail->Send()
...
...
2)
** problema **
Ora sempre in locale e sempre con PHPMailer si vuole anche allegare un file alla nostra e-mail.
con PHPMailer basta semplicemente specificare il file da allegare come segue:
codice:
$file_da_allegare = "cartella/".$file_name;
$mail->AddAttachment($file_da_allegare);
Sembra tutto semplice ma ecco la domanda:
** DOMANDA **
Nel caso di un classico form html con <input type="file" name="allegato"> come faccio a specificare il path completo del file come dall'esempio sopra?
** alternativa **
codice:
...
$attach = $_FILES["allegato"]["tmp_name"];
Mkdir(temp); // creo cartella provvisoria
move_uploaded_file($attach, "temp/".$file_name); // muovo il file caricato nella cartella creata
$allego = "temp/".$file_name;
$mail->AddAttachment($allego);
...
$mail->Send() // invio email con allegato grazie a PHPMailer
...
unlink("temp/".$file_name); // cancello file provvisorio
Rmdir('temp'); // cancello cartella provvisoria
...
Come potete vedere tutti i problemi sono stati risolti ma non sono soddisfatto dei metodi utilizzati.
SOPRATTUTTO per la seconda domanda mi continuo a domandare se non ci sia un metodo più semplice per determinare un SEMPLICE PATH.
Grazie a tutti anticipatamente