• User

    Xampp e invio email in locale

    Ciao a tutti!
    sto provando ad inviare email da una pagina in locale ma non riesco. Ho sentito anche parlare di phpmailer ma non so come funziona. Uso Xampp. Qualcuno mi può dare qualche consiglio e/o indicare una guida? vi ringrazio in anticipo. Buona giornata! 🙂


  • User Attivo

    Sono impazzito anche io per questo problema e ti scrivo l'unico metodo funzionante che ho trovato. Io lo uso con un account Gmail, con altri gestori dovresti modificare i paramentri, ma non ti do garanzia perchè non ho provato. Io uso XAMPP in una cartella di nome XAMPP1.8.3, quindi tu dovrai modificare in base al nome della tua cartella. Ricordati anche di togliere i punti e virgola, se ci sono, davanti alle righe che ti indico:

    apri il file php.ini nella cartella PHP di XAMPP e togli il punto e virgola (io ce l'ho alla riga 1009) davanti a

    extension=php_openssl.dll

    poi cerchi la sezione [mail function] (dovrebbe essere la riga 1129) modificando i valori in

    SMTP = smtp.gmail.com
    smtp_port = 587

    sendmail_from = latuaemail

    sendmail_path = ""\xampp1.8.3\sendmail\sendmail.exe" -t"

    ovviamente al posto di "latuaemail" devi scrivere il tuo indirizzo di posta Gmail. Poi esci dalla cartella PHP e vai in quella SENDMAIL e modifichi il file sendmail.ini. Cerchi la sezione [sendmail] (riga 6) e metti questi valori:

    smtp_server=smtp.gmail.com
    smtp_port=587
    smtp_ssl=auto

    auth_username=latuaemail
    auth_password= (qui devi scrivere la tua password di posta elettronica senza le parentesi)

    force_sender=latuaemail

    Se ci sono togli i punti e virgola davanti alle linee indicate e togli anche da

    error_logfile=error.log
    debug_logfile=debug.log

    Dovrebbe essere tutto.
    Ora se provi uno script php con la funzione mail() dovrebbe funzionare anche da locale e le email risulteranno spedite dall'indirizzo che hai indicato nelle righe "latuaemail".

    Ciao.


  • User Newbie

    Ciao Oslino.
    Ho configurato un pc che non usavo, con xampp, e lo uso come server in casa. xampp funziona a dovere, mostra tutto verde.... Riesco ad accedere alle mie pagine dalla rete e anche da esterno, perché ho configurato un dns. Riesco persino a accedere al mio phpmyadmin e a caricarci tabelle...
    Nel server ho voluto provare joomla_3, che come saprai è un "editor" per pagine web. Purtroppo quando un nuovo utente compila il modulo di registrazione, non mi arriva l'email per convalidare l'accesso... (ne a me ne a lui). Joomla_3 non da errore...
    Ho configurato mercury come hai scritto sopra, riavviato... ma niente. Avresti suggerimenti per favore?
    Grazie.


  • User Attivo

    @PaoloChiavetta said:

    Ciao Oslino.
    Ho configurato un pc che non usavo, con xampp, e lo uso come server in casa. xampp funziona a dovere, mostra tutto verde.... Riesco ad accedere alle mie pagine dalla rete e anche da esterno, perché ho configurato un dns. Riesco persino a accedere al mio phpmyadmin e a caricarci tabelle...
    Nel server ho voluto provare joomla_3, che come saprai è un "editor" per pagine web. Purtroppo quando un nuovo utente compila il modulo di registrazione, non mi arriva l'email per convalidare l'accesso... (ne a me ne a lui). Joomla_3 non da errore...
    Ho configurato mercury come hai scritto sopra, riavviato... ma niente. Avresti suggerimenti per favore?
    Grazie.

    Ciao Paolo,
    il sistema indicato sopra è per Sendmail, non per Mercury. Nella root principale di Xampp dovresti trovarti diverse cartelle tra cui una che si chiama "sendmail" (oltre a quella MercuryMail, ma non è il nostro caso). Dovresti provare a settare il file sendmail.ini

    Fai poi una prova con un semplice script mail() caricato nella cartella htdocs per vedere se funziona. Non sono pratico di Joomla, ma questi sono i primi test che dovresti fare prima di andare avanti.
    Ciao.


  • User Newbie

    Rieccomi... il lavoro mi da una tregua quando capita...
    Scusa, si, ho configurato i file da te citati e come hai consigliato, ho buttato giù due paginette in php per inviare dal server una mail, ma non funziona. (Ho provato le stesse paginette su un server di altervista e la mail arriva...).
    Ora dovrei configurare anche il file mercury.ini, ma non so come...:x


  • User Attivo

    @PaoloChiavetta said:

    Rieccomi... il lavoro mi da una tregua quando capita...
    Scusa, si, ho configurato i file da te citati e come hai consigliato, ho buttato giù due paginette in php per inviare dal server una mail, ma non funziona. (Ho provato le stesse paginette su un server di altervista e la mail arriva...).
    Ora dovrei configurare anche il file mercury.ini, ma non so come...:x

    Scusa se sono tardo ma voglio essere sicuro di aver capito bene... hai configurato sendmail di Xampp (NON Mercury) come indicato e non ti spedisce le mail? Hai provato a richiamare lo script mail da locale (localhost oppure 127.0.0.1) e non ha funzionato?

    Hai controllato i log d'errore di Xampp per sapere cosa non va? Che versione di Xampp usi? Che servizio di posta elettronica usi?


  • User Newbie

    Parse error: syntax error, unexpected end of file in D:\server\htdocs\contatti\mailto.php on line 37
    **Questo è l'errore che mi da...
    la pagina non riesco a caricarla perché mi da il messaggio che devo rimuovere l'indirizzo email credo....
    **

    comunque la linea 37 è l'ultima!!!!


  • User Attivo

    L'errore che ti dà è relativo al tuo script e non alle impostazioni di Xampp. Non conosco come hai strutturato lo script ma devi usare il tag php iniziale <?php (non gli short tag come <? oppure <% ). Togli tutto l'eventuale html presente e riprova omettendo la chiusura finale del tag php ( ?> )


  • User Newbie

    come si fa a postare lo script? mi da errore...


  • User Newbie

    [PHP]<?php
    $oggi = date("j F Y G:i");$sito = $mittente;$ip = "$_SERVER[REMOTE_ADDR]";$browser = "$_SERVER[HTTP_USER_AGENT]";$to = "mia ";$soggetto = "Modulo da $sito";
    if(trim($_POST['nome']) == "" OR trim($_POST['telefono']) == "" OR trim($_POST['email']) == "" OR trim($_POST['messaggio']) == "") {echo "<font color="red" face="arial" size="2"><strong>Attenzione! Tutti i campi sono obbligatori!</strong></font>";
    } else {
    $body = "Modulo inviato il $oggi da $ip - $browser \n\n";$body .= "Nome: $_POST[nome] \nTelefono: $_POST[telefono] \nEmil: $_POST[emil]\nMessaggio: $_POST[messaggio]";
    mil("$to","$soggetto","$body");?><html><head><title>e-mil inviata</title><META HTTP-EQUIV=refresh CONTENT="5;URL=index.php">
    </head><body style="text-align: center;" alink="red" lang="IT" link="red" vlink="red" MARGINHEIGHT="0">
    <div align="center"> </div><div align="center"><br><br><br><br><br><font size="2" color="black">L' è stata inviata con successo!<br>Ne riceverai copia all'indirizzo che hai inserito. </font><br><font size="2" color="black">Grazie.</font>
    </div>
    </body></html>[/PHP]

    Ho tolto o modificato tutte le scritte email... ma si dovrebbe capire lo stesso...


  • User Attivo

    Eh... purtroppo è un problema del forum. Avevo provato anche io ad inserirti uno script di prova ma mi ha dato il tuo stesso problema. Devi caricarlo su qualcosa di esterno al forum e linkarlo qui...


  • User Attivo

    La funziona mail è sbagliata (mil) e non vanno virgolette nei suoi argomenti.
    Inoltre manca la parentesi graffa di chiusura, motivo per cui ti dà l'errore che hai indicato.

    [PHP]
    <?php
    $oggi = date("j F Y G:i");
    $sito = $mittente;
    $ip = $_SERVER['REMOTE_ADDR'];
    $browser = $_SERVER['HTTP_USER_AGENT'];
    $to = "mia ";
    $soggetto= "Modulo da $sito";
    if(trim($_POST['nome']) == "" OR trim($_POST['telefono']) == "" OR trim($_POST['email']) == "" OR trim($_POST['messaggio']) == "")
    {
    echo "<font color="red" face="arial" size="2"><strong>Attenzione! Tutti i campi sono obbligatori!</strong></font>";
    }
    else
    {
    $body = "Modulo inviato il $oggi da $ip - $browser \n\n";
    $body .= "Nome: $_POST['nome'] \nTelefono: $_POST['telefono'] \nEmil: $_POST['email']\nMessaggio: $_POST['messaggio']";
    mail($to,$soggetto,$body);?>
    <html>
    <head>
    <title>
    e-mil inviata
    </title><META HTTP-EQUIV=refresh CONTENT="5;URL=index.php">
    </head>
    <body style="text-align: center;" alink="red" lang="IT" link="red" vlink="red" MARGINHEIGHT="0">
    <div align="center">
     
    </div>
    <div align="center">
    <br><br><br><br><br>
    <font size="2" color="black">
    L' è stata inviata con successo!<br>Ne riceverai copia all'indirizzo che hai inserito.
    </font><br>
    <font size="2" color="black">
    Grazie.
    </font>
    </div>
    </body>
    </html>
    <?php } ?>
    [/PHP]

    Ci sono anche altri errori, ma non sto ad elencarteli tutti. La funzione mail dovrebbe andare lo stesso.

    EDIT:
    C'è anche un errore nella variabile globale $_POST (emil è diverso da email), il tuo codice è abbastanza incasinato e sbagliato.

    RI-EDIT
    Ti ho messo a posto gli errori visibili. Do per scontato che il tuo script abbia un tag FORM e un SUBMIT.... ma stiamo andando OT. La discussione era relativa a XAMPP non agli errori php del tuo script....


  • User Newbie

    Grazie per l'aiuto... però il mio tempo per "lo Svago" è terminato... ci provo in tarda serata e vi dico... Grazie ancora..