Spedire mail con PHP: come conosco i dati?

VAik

Utente Attivo
16 Apr 2016
117
3
18
Ciao a tutti ragazzi

stavo seguendo il corso PHP e sono arrivato alla lezione come spedire una mail con php

Questo è l'esempio proposto dalla guida, i miei dubbi li metto come commento #

PHP:
<?php

#PERCHE' DEFINISCO IL MITTENTE ED IL DESTINATARIO?  COME FACCIO A CONOSCERLI?

// definisco mittente e destinatario della mail
$nome_mittente = "Mio Nome";
$mail_mittente = "[email protected]";
$mail_destinatario = "[email protected]";


#COME FACCIO A CONOSCERE ANCHE L'OGGETTO ED IL CORPO?

// definisco il subject ed il body della mail
$mail_oggetto = "Messaggio di prova";
$mail_corpo = "Questo è un messaggio di prova per testare la mia applicazione";

// aggiusto un po' le intestazioni della mail
// E' in questa sezione che deve essere definito il mittente (From)
// ed altri eventuali valori come Cc, Bcc, ReplyTo e X-Mailer
$mail_headers = "From: " .  $nome_mittente . " <" .  $mail_mittente . ">\r\n";
$mail_headers .= "Reply-To: " .  $mail_mittente . "\r\n";
$mail_headers .= "X-Mailer: PHP/" . phpversion();

if (mail($mail_destinatario, $mail_oggetto, $mail_corpo, $mail_headers))
  echo "Messaggio inviato con successo a " . $mail_destinatario;
else
  echo "Errore. Nessun messaggio inviato.";
?>
Ciao
 

mr.x

Utente Attivo
9 Apr 2016
251
25
28
ciao
puoi valorizzare le variabili che ti interessano recuperando i dati da un database (es. lista di email) e/o passandoli tramite un form.
 

VAik

Utente Attivo
16 Apr 2016
117
3
18
La prima cosa che non capisco è come funziona questo codice:

cioè io vado in un sito che ha una pagina di form da compilare. Io tramite questa pag metto i miei dati cioè nome e mia mail, e poi indico a chi voglio mandare una mail?
così funziona?

ciao
puoi valorizzare le variabili che ti interessano recuperando i dati da un database (es. lista di email) e/o passandoli tramite un form.
ma allora è un esempio poco pratico?

quindi al posto del "Mio Nome"

dovrei mettere ?
PHP:
// definisco mittente e destinatario della mail 
$nome_mittente = $_POST['nome']; 
$mail_mittente = $_POST['email'];
$mail_destinatario = ?????;



il database non lo so ancora utilizzare con php.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
cio
il funzionamento è il seguente:
devi avere due pagine una col form (che può essere html) dove scrivi ed una (deve essere dinamica) che riceve i dati e li processa, ti schematizzo:
questa è la pagina col form
HTML:
<!DOCTYPE HTML>
<html>
<head></head>
<body>
<form action="ricevi.php" method="post">
tuo nome <input name="nome" type="text"><br>
email mittente <input name="mittente" type="text"><br>
email destinatario <input name="destinatario" type="text"><br>
<input name="invia" type="submit" value="invia">
</form>
</body>
</html>
dopo aver scritto il nome e l'email premi il pulsante di submit (chiamato es. invia)
alla pressione del submit dato che nel tag form c'è:
action="ricevi.php" a
method="post"
il form cerca la pagina ricevi.php e, se la trova, le invia i dati usando il metodo post
la pagina ricevi.php, per ricevere i dati, deve avere il seguente codice minimo
PHP:
<?php
$nome_mittente=$_POST['nome'];
$mail_mittente=$_POST['mittente'];
$mail_destinatario=$_POST['destinatario'];
/*la variabile superglobale $_POST chiamata none assegna il valore
trasmesso (scritto nel) campo di input "nome" alla variabile $nome_mittente
analogo discorso per le email
*/
//ricevuti i dati li processa.....
?>
spero di averti spiegato bene

p.s.
il tutto può essere fatto in un'unica pagina
 

VAik

Utente Attivo
16 Apr 2016
117
3
18
Grazie Borgo per la risposta, ma ho la febbre e non ho la forza di ragionarci su. Intanto ti dico grazie e fra qualche giorno controllo la tua risposta..

ciao
 

VAik

Utente Attivo
16 Apr 2016
117
3
18
Ciao Borgo, grazie del tuo codice e per le spiegazioni...seguendo un'altra guida avevo già creato due pagine collegate (la seconda con php e che visualizza i dati a video) come mi hai indicato.
Però come hai scritto pure tu, è una cosa di acquisizione dati, non di invio mail. Qui si parla nella guida di "Sperdire email con PHP".
io non capisco proprio questo: è un form per inviare una mail a qualcuno?

La prima cosa che non capisco è come funziona questo codice:
cioè io vado in un sito che ha una pagina di form da compilare.
Tramite questa pag metto i miei dati cioè nome e mia mail, e poi indico a chi voglio mandare una mail?
così funziona?
Poi tramite una pagina dinamica che NON è quella mostrata nella guida perchè non ci sono ACQUISIZIONI di dati, ma solo DEFINIZIONI di dati, invierà la mail, giusto?

mi piacerebbe realizzarlo per capire il reale funzionamento




@Marino

grazie del tuo intervento.....però non so se sono in grado di capire l'esempio che hai postato (ho scaricato i file per ora, ma non ho letto il tuo post) si discosta da questo codice...però non ho ancora letto il tuo post....forse mi aiuterà a capire...dopo vedo
 
Ultima modifica:

mr.x

Utente Attivo
9 Apr 2016
251
25
28
io non capisco proprio questo: è un form per inviare una mail a qualcuno?
ciao @vaik, l'esempio difficilmente lo troverai su una web in questo modo per ovvi motivi legati allo spam. Esempi pratici di utilizzo però ne trovi molti a cominciare dalle mail di benvenuto che ti arrivano quando ti iscrivi ad un forum.. in questo caso il form lo compili tu con i tuoi dati e lo script ti manda una mail all indirizzo indicato e utilizzando il nome che hai immesso. testo e mittente son di solito 'fissi' configurati dalla admin. altro es. può essere una newsletter dove l admin (mittente) compila un form con i dati necessari. Spero di averti chiarito le idee in quanto mi sembra di aver capito che cercavi esempi pratici di utilizzo.
anche i form per inviare commenti ad un articolo su un blog funzionano allo stesso modo, inoltrando una mail all admin con i dati inseriti (testo del commento, email e nome)
 

VAik

Utente Attivo
16 Apr 2016
117
3
18
Grazie mr.x
il ragionamento fila ed ora penso di aver capito con gli esempi che hai riportato soprattutto per l'iscrizione ad un forum.

Vedo domani se riesco a far quadrare tutto in testa
ciao