Funzione mail()

Oswold

Utente Attivo
7 Ago 2013
81
0
6
Catania
Salve ancora!

Ho un altro piccolo problema:

Ho migliorato lo script della registrazione ed adesso devo far mandare dallo script un email per completare la registrazione quindi ho deciso di procedere così:

Mi sono creato un campo impostato a 0 nel database, finché il campo è 0 l'utente non è autentificato e di conseguenza la registrazione non è completa e non può effettuare il login.
Una volta cliccato il link (che si riceve nell'email) questo value viene incrementato ad 1 così da avere l'account abilitato.
Fin qui tutto bene, ho creato tutto e il php non mi da errori ma, e dico ma, non mi arriva nessuna email

PHP:
$risultato=mysql_query("INSERT INTO utenti (username,password,mail) VALUES ('$user', '$pass', '$mail')") or die(mysql_error());
if($risultato){  

   $mail_mittente = "Inserisco_La_Mia_Email";
   $mail_destinatario = "$mail";

   $mail_oggetto = "Completamento Registrazione!";
   $mail_corpo = "Clicca qui per completare la registrazione: localhost/Test/Conferma_Registrazione.php?email=$mail\r\n";
   $mail_corpo = "Le Ricordiamo che la sua password è: $pass e che il suo username è: $user\r\n";
   $mail_corpo = "Grazie per essersi registrato al nostro sito!\r\n";

   if (mail($mail_destinatario, $mail_oggetto, $mail_corpo, "From: $mail_mittente"))

   {
   echo "<div4>Ti è stata inviata un email nella posta elettronica, clicca sul link per completare la registrazione!</div4>";
   }
   else
   {
   echo "E' avvenuto un errore, riprova.";
   }
}

Il codice mi stampa:
PHP:
Ti è stata inviata un email nella posta elettronica, clicca sul link per completare la registrazione!
di conseguenza tutto funziona alla perfezione, sapreste dirmi qual'è il problema?

Grazie in anticipo!
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
PHP ti conferma che è riuscito a comunicare al server mail configurato di mettere in lista invii la tua email, non ti ha confermato l'invio perché chi spedisce effettivamente l'email è qualcun altro. Detto questo, generalmente si tratta di aspettare qualche minuto ma potrebbe rimanere il problema che senza i giusti headers i provider di posta ti leggeranno facilmente come spam.

Personalmente ti consiglio l'uso della classe PHPMailer che gestisce per te molte di queste intestazioni.
 

Oswold

Utente Attivo
7 Ago 2013
81
0
6
Catania
Grazie mille!

Gli ho dato uno sguardo veloce ed è molto simile e semplicissimo da capire!
Sicuramente non avrò problemi!

Grazie per la risposta ed il link!
 

Oswold

Utente Attivo
7 Ago 2013
81
0
6
Catania
Visto che per creare un account SMTP dovrei aver già acquistato il dominio chiedo a voi, dal punto di vista sintattico va bene?

PHP:
require "phpmailer/class.phpmailer.php";

$messaggio = new PHPmailer();
$messaggio->IsSMTP();
$messaggio->Host='Host SMTP';

$messaggio->From='Mioemail';
$messaggio->AddAddress('$mail');
$messaggio->AddReplyTo('Mioemail'); 
$messaggio->Subject='Completamento Registrazione';
$messaggio->Body=stripslashes('Clicca qui per completare la registrazione: localhost/Test/Conferma_Registrazione.php?email=$mail');
$messaggio->Body=stripslashes('Le Ricordiamo che la sua password è: $pass e che il suo username è: $user');
$messaggio->Body=stripslashes('Grazie per essersi registrato al nostro sito!');

if(!$messaggio->Send()){ 
  echo "<div4>E' avvenuto un errore, riprova.</div4>"; 
}else{ 
  echo "<div4>Ti è stata inviata un email nella posta elettronica, clicca sul link per completare la registrazione!</div4>"; 
}

$messaggio->SmtpClose();
unset($messaggio);
}
}
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
L'uso dell'SMTP serve a specificare un server email alternativo, puoi tranquillamente non usarlo in quanto generalmente ogni servizio di hosting ha un server email di default collegato a php.

Quanto agli errori, l'unico che vedo è che non concateni il body dell'email, quindi ad ogni dichiarazione ne sovrascrivi il contenuto.
Dovresti risolvere facilmente così:
PHP:
$messaggio->Body =stripslashes('Clicca qui per completare la registrazione: localhost/Test/Conferma_Registrazione.php?email=$mail');
$messaggio->Body .=stripslashes('Le Ricordiamo che la sua password è: $pass e che il suo username è: $user');
$messaggio->Body .=stripslashes('Grazie per essersi registrato al nostro sito!');
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Utilizza le doppie virgolette per usare le variabili in una stringa, altrimenti ti stampa il nome cosi com'è, oppure concatenala con il punto
PHP:
$messaggio->Body =stripslashes("Clicca qui per completare la registrazione: localhost/Test/Conferma_Registrazione.php?email=$mail"); 
$messaggio->Body .=stripslashes('Le Ricordiamo che la sua password è: $pass e che il suo username è: '.$user); 
$messaggio->Body .=stripslashes('Grazie per essersi registrato al nostro sito!');
 
Discussioni simili
Autore Titolo Forum Risposte Data
A Mail con funzione mail() riconosciute come spam PHP 9
L Problema funzione mail() PHP PHP 3
A [PHP] Problema invio mail con funzione mail() PHP 3
A problema funzione mail() PHP 33
otto9due Funzione mail(), ritardi e mancati arrivi delle mail? PHP 0
gandalf1959 funzione mail() e variabili su un link nel body in formato xxx.php?$a=$codicecontrollo PHP 2
C Limiti funzione mail() di php PHP 1
L problema email con funzione mail PHP 1
A Funzione mail() non mi funziona da quando sono passato ad aruba PHP 1
I Problemi invio messaggio utilizzando la funzione mail() PHP 1
P Problema con la funzione mail PHP 13
E aiuto form allegato.con funzione mail PHP 8
L funzione mail PHP 1
M Problemi funzione mail PHP 1
R funzione mail PHP 2
G Problemi con la funzione "mail" PHP 3
R funzione mail PHP 2
A php funzione mail() PHP 0
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
R Variabile non risconosciuta dentro una funzione PHP 1
P Implementazione funzione FileReader Javascript 0
P Funzione copia multipla. Javascript 2
P Funzione jQuery Ajax invio file a php jQuery 1
A Funzione read URL PHP 6
F Funzione Glob - ricerca file contenente una parola PHP 1
M Utilizzare la funzione mysql_num_rows() in PHP 5 PHP 3
A funzione iconv () non mi funziona PHP 4
D Come usare funzione php PHP 6
Y verificare condizione dopo esecuzione della funzione Programmazione 0
IClaude Funzione Javascript Javascript 8
A Funzione share come modificarla Social Media Marketing 0
L funzione onclik con seno e coseno non va Javascript 3
L funzione onclick non va Javascript 26
G modifica corretta funzione da eregi() a preg_match() PHP 3
Shyson Modificare funzione php PHP 15
L pdo (stampare un valore con ritorno a funzione) PHP 0
elpirata Funzione conversione da minuti in ore Javascript 0
@ [MS Access] Funzione Iif..is null... Database 0
F Funzione deprecata in PHP7 PHP 1
G [MS Access] Funzione ARROTONDA non definita nell'espressione MS Access 1
max1974 [Javascript] Funzione Errata procedura Javascript 2
pjtertdj Visualizzazione dati in php da mysql con funzione matematica in javascript PHP 1
Domenico_Falco1 Associare una stessa funzione get a due eventi a.click con classi differenti Ajax 6
psicomia Gestione funzione in javascript in tabella richiamare"textarea" valori preimpostati in "select" Javascript 2
elpirata [Javascript] Lo script alle volte funzione altre volte no Javascript 0
V [Visual Basic] Richiamare funzione su modulo per restituire list Visual Basic 0
R [Photoshop] funzione colore automatico Photoshop 0
maxnegri [PHP]Funzione di calcolo prezzo di una camera in un range di date PHP 62
L [PHP] problema count messo in una funzione. PHP 1
Monital funzione php si ripete due volte PHP 6

Discussioni simili