Invio mail per sito html

di il
9 risposte

Invio mail per sito html

Salve, sul mio sito personale ho inserito una funzione per invio messaggio tramite email.

il codice html è il seguente
<form method="POST" class="contact__form grid" action="./mail.php">
            <input type="hidden" name="successo">   
            <div class="contact__inputs grid">
                   <div class="contact__content">
                       <label for="nome" class="contact__label">Nome e Cognome</label>
                       <input type="text" name="nome" class="contact__input">
                   </div>
                   <div class="contact__content">
                    <label for="email" class="contact__label">Email</label>
                    <input type="email" name="xemail" class="contact__input">
                </div>
               </div>
               <div class="contact__content">
                <label for="oggetto" class="contact__label">Oggetto</label>
                <input type="text"  name="oggetto" class="contact__input">
            </div>
            <div class="contact__content">
                <label for="msg" class="contact__label">Messaggio</label>
                <textarea name="msg" required name="msg" cols="0" rows="8" class="contact__input"></textarea>
            </div>

            <div>
                <input type="submit" name="send" class="button button--flex"  value="Invia messaggio &nbsp"> 
                  <input type="reset"  class="button button--flex" value="cancella">
            </div>
           </form> 


ho provato in diversi modi a creare uno script in php per l'invio della mail ma o non fa nulla, o mi fa un download del mio stesso file php o mi da errore sulla pagina. Avete una guida funzionante e recente per l'invio mail o potete aiutarmi? valuto anche alternative al php, magari con Javascript

mi interessa prende nome/xemail(mail del mittente)/oggetto e msg(testo)


grazie in anticipo

9 Risposte

  • Re: Invio mail per sito html

    Ciao,
    per aiutarti avrei bisogno di:

    1. che errore ti dà sulla pagina?
    2. puoi postare lo script PHP che hai utilizzato?

    Per il download del file, direi che il problema rigurarda la configurazione il server web
  • Re: Invio mail per sito html

    L'errore dice che la pagina non è accessibile, le prove le stavo facendo in locale non so se dipende da questo

    il codice era simile a questo ma ne ho provati anche altri
    <?php
    
    $destinatario = "destinatario@esempio.it";
    $nome="nome";
    $email="xemail";
    $soggetto = "oggetto";
    $messaggio = "msg";
    
    $headers = "From: .$xemail";
    $headers .= "MIME-Version: 1.0\n";
    $headers .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
    $headers .= "Content-Transfer-Encoding: 7bit\n\n";
    
    mail($destinatario,$nome,$xemail, $soggetto, $messaggio, $headers);
    
    ?>
    e alla fine aggiungevo un comando per rimanere fisso sulla pagina del sito senza spostarmi sul file php
  • Re: Invio mail per sito html

    Per l'errore di pagina non accessibile probabilmente dipende dal server. In locale che vuol dire? Che stai usando per restituire le pagine html? php -s , un server apache?

    Inoltre mi pare che stai invocando mail il comando mail di php che ha una sintassi diversa:
    
    mail(
        string $to,
        string $subject,
        string $message,
        array|string $additional_headers = [],
        string $additional_params = ""
    ): bool
    
    Inizia utilizzando correttamente il comando mail e poi cerca di capire se hai settato correttamente il server in locale
  • Re: Invio mail per sito html

    Ora ho caricato tutto sul dominio aruba, quindi faccio le prove direttamente da li.

    sono alle prime armi, quindi per capirci il codice dovrei impostarlo così ora?
    <?php
    
    $to = "pierdanieldeveloper@gmail.com";
    $nome="nome";
    $email="xemail";
    $soggetto = "oggetto";
    $msg="msg";
    $messaggio = "$nome", ."$email", ."$msg";
    
    $headers = "From: .$xemail";
    $headers .= "MIME-Version: 1.0\n";
    $headers .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
    $headers .= "Content-Transfer-Encoding: 7bit\n\n";
    
    mail(
        string $to,
        string $oggetto;
        string $messagio,
        array|string $additional_headers = [],
        string $additional_params = ""
    ): bool;
    
    ?>
  • Re: Invio mail per sito html

    Ciao,
    no. Per iniziare direi più qualcosa tipo così:
    
    <?php
    	$to = "pierdanieldeveloper@gmail.com";
    	$subject = "Prova di un messaggio";
    	$message = "Questo mi aspetto di trovarlo nel corpo del messaggio";
    	mail($to, $subject, $message);	
    ?>
    
  • Re: Invio mail per sito html

    Ciao ho testato e funziona perfettamente! grazie.

    Ora devo solo integrarla con i vari parametri oggetto, corpo del messaggio e nome/mail.
    va bene settare le variabili come ho fatto sopra?
    $nome="nome";
    $email="xemail";
    $soggetto = "oggetto";
    $msg="msg";
    $messaggio = "$nome", ."$email", ."$msg";
  • Re: Invio mail per sito html

    Come vedi hai tre parametri fissi: $to ossia l'indirizzo di destinazione, $subject ossia l'oggetto dell'email e infine $message ossia il corpo del messaggio email. Sul primo il vincolo è che si tratti di un indirizzo email corretto, sugli altri due puoi agire come credi e comporli come preferisci. Fossi in te darei anche un'occhiata alle modalità di utilizzo delle stringhe in PHP, quello che hai scritto nell'ultima riga di codice non ha molto senso, ma non c'entra col problema dell'invio mail.
  • Re: Invio mail per sito html

    Volevo utilizare il "." per unire ma ho sbagliato la sintassi. Va benissimo grazie mi metto all'opera gestendo gli altri due parametri, l'importante era risolvere il problema dell'invio mail che ora finalmente funziona perfettamente! Grazie
  • Re: Invio mail per sito html

    
    <?php
        $oggetto=$_POST['oggetto'];
        $xemail=nl2br($_POST['xemail']);
        $xnome=$_POST['nome'];
        $msg=nl2br($_POST['msg']);
    	$to = "pierdanieldeveloper@gmail.com";
    	$subject = "$oggetto";
    	$message = $xnome. ($xemail). ($msg);
    	mail($to, $subject, $message);	
    ?>
      
    l'ho scritta così alla fine. Devo solo andare a capo tra xnome/xemail e msg per il resto è perfetto. grazie ancora
Devi accedere o registrarti per scrivere nel forum
9 risposte