Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Funzione mail()

  1. #1

    Funzione mail()

    Buonasera a tutti. Ho un problema nell'inserire una form per l'email in un mio sito. Sembra che l'email non partano dato che ci sono problemi di collegamento tra la form e la pagina che salva i dati in delle variabili e manda l'email.
    Ho una pagina php nella quale ho una form fatta così:
    codice:
    <form action="invio_mail.php" method="post" enctype="text/plain">
    <span id="text">Indirizzo email:</span> 
    
    <input type="text" name="indirizzo"> 
     
    
    <span id="text">Oggetto:</span> 
     
    <input type="text" name="oggetto"> 
     
    
    <span id="text">Testo:</span> 
    
    <textarea name="messaggio" rows="10" cols="50">
    </textarea> 
    
    <input type="submit" id="invia" value="Invia">
    <input type="reset" id="cancella" value="Cancella">         
    </form>
    e questo è il codice nella pagina "invio_mail.php":
    codice:
    <?php 	
    $mittente = $_POST["indirizzo"]; 	
    $oggetto = $_POST["oggetto"]; 	
    $messaggio = $_POST["messaggio"]; 	 	
    mail("fedeazzurra94@hotmail.it", $oggetto, $messaggio, $mittente); 	
    header("refresh: 3, URL=contattaci.php");		 	 	
    echo "Email inviata! Tra poco verrai re-indirizzato alla pagina precedente."; 
    ?>
    C'è qualche soluzione? Sapete aiutarmi?
    Grazie in anticipo.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Ti da qualche errore? Quale?
    Hai controllato se l'email arrivano tra lo spam?

    Vedo che le invii ad un indirizzo hotmail, assieme agli indirizzi di libero sono problematici.
    Hai una casella gmail o di qualche altro provider per inviarci un'email di prova?

    Da un'occhiata qui.

  3. #3
    Dato che faccio le prove con easyphp, mi escono questi errori:
    codice:
    Notice: Undefined index: indirizzo in C:\Program Files (x86)\EasyPHP-DevServer-13.1VC9\data\localweb\matelab\invio_mail.php on line 2  
    Notice: Undefined index: oggetto in C:\Program Files (x86)\EasyPHP-DevServer-13.1VC9\data\localweb\matelab\invio_mail.php on line 3  
    Notice: Undefined index: messaggio in C:\Program Files (x86)\EasyPHP-DevServer-13.1VC9\data\localweb\matelab\invio_mail.php on line 4  
    Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing in C:\Program Files (x86)\EasyPHP-DevServer-13.1VC9\data\localweb\matelab\invio_mail.php on line 6 
    Email inviata! Tra poco verrai re-indirizzato alla pagina precedente.
    Se invece provo a caricarlo sul server di aruba, l'email mi arriva nello spam, senza oggetto e senza testo. Inoltre il mittente è sempre "me@localhost.com".

    A questo punto pensavo se ci fosse qualche altra soluzione, ed in mente mi viene solo l'idea di mettere il mailto alla form, evitando la seconda pagina in php. Purtroppo, però, ciò porta l'utente ad usare Thunderbird, Outlook o qualsiasi altro programma per l'invio di mail. Hai/avete qualche altra soluzione?

    Grazie ancora.

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Quegli errori ti stanno dicendo che $_POST['indirizzo'], $_POST['oggetto'] e $_POST['messaggio'] non esistono.
    Se invece di inviare l'email provi a stamparli con un echo appaiono a schermo?

    Il warning invece ti dice che il tuo php.ini non è impostato per inviare email, il mailserver che hai sul tuo PC va configurato, di default non lo è.

  5. #5
    Purtroppo ora non ho la possibilità di provare, ma pensandoci è strano che mi dia l'errore sulle variabili. Il metodo post lo uso correttamente (imho) e i nomi tra le parentesi sono giusti...per la configurazione del mio server avevo già capito il da farsi...
    Perché poi, secondo te, la mail inviata da Aruba con inserito il mittente mi arriva senza testo, senza oggetto e con indirizzo sbagliato?

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Perché $_POST['oggetto'] e $_POST['messaggio'] non sono settate, quindi vengono considerate vuote, solo che sul server online non ti da errore perché probabilmente il livello di messaggi d'errore è impostato più basso che sul tuo PC.
    Inoltre se non specifichi il campo from e replyto, il server ci mette l'indirizzo di default che è quello che ti ritrovi adesso, ovvero 'me@localhost.com'

  7. #7
    A questo punto dato che ci sono problemi, mi consigli di usare un semplice "mailto:" o hai qualche altra soluzione?

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Usa la classe PHPMailer

    Pillola sull'utilizzo
    http://forum.html.it/forum/showthrea...readid=1215634

    Link da cui scaricare la classe e file associati
    http://phpmailer.worxware.com/

  9. #9
    Grazie mille,
    Fed10

  10. #10
    Ho provato a inserire il phpmailer nel mio sito. Ho caricato tutta la cartella.
    Ora nella prima pagina ho sempre la mia form con i vari nomi ai vari campi da usare attraverso il metodo "post", mentre nel secondo (ovvero nello script) ho inserito questo codice:
    codice:
    <?php 	
    include_once('phpmailer/class.phpmailer.php');  	
    $mail = new PHPMailer(); 	 	
    $mail->From = $_POST['indirizzo']; 	
    $mail->FromName = $_POST['nome']; 	
    $mail->Subject = $_POST['oggetto']; 	
    $mail->Body = $_POST['messaggio']; 	 	
    
    $mail->AddAddress("info@dominio.it"); 	 	
    if($mail->Send())  	
    { 		
    echo 'mail inviato correttamente'; 	
    }  	
    else  	
    { 		
    echo 'Errore: mail non inviato'; 	
    } 	
    header("refresh: 3, URL=contattaci.php"); 
    ?>
    C'è qualcosa di sbagliato?
    Se uso questo script, mi da un errore nel class.phpmailer.php e ovviamente mi da l'errore di mail non inviata.
    Spero di trovare aiuto qua, perché ho visto che l'assistenza in quell'altra discussione non c'è più.

    Grazie ancora,
    Fed10

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.