-
Mail con mail() in php
Ho cercato a lungo sul forum ma non ho mai trovato ciò che mi interessa: come attivare la funzione mail di altervista ( che a quanto ho capito non deve essere attivata in realtà, qua non è specificato ).
Io ho tentato varie volte e, premesso che il resto del codice funziona, registrandosi non viene inviata nessuna mail, anche se essa viene salvata nel db insieme a tutti i dati relativi. Qualcuno ha qualche soluzione?
Grazie in anticipo.
-
Codice per l'invio della mail:
Codice PHP:
else //Invio MAIL di conferma
{
echo "\n ".$_POST['mail'];
$a=$_POST['mail'];
$oggetto="Registrazione a Calendar";
$messaggio= " Segui il link per completare la registrazione :";
$messaggio.= " <a href=\"www.fellowshipofmad.altervista.org/Calendario/testMail.php"; //
$messaggio.= "?cod=".$cod."&user=".$_POST['username']." > link </a> ";
$intestazioni= "From:fellowshipofmad@altervista.org";
$intestazioni .= "Reply-To:fellowshipofmad@altervista.org";
$intestazioni .= "X-Mailer: PHP/".phpversion();
mail($a, $oggetto, $messaggio, $intestazioni);
}
}
-
posta il codice completo...
-
Codice PHP:
<html>
<head>
<link rel="stylesheet" type="text/css" href="cssPrototype.css" />
</head>
<?php
echo $_POST['username']." and ".$_POST['pw'];
include 'config.php';
$tableUsername="SELECT * FROM user WHERE username like '{$_POST['username']}'";
$ExistUser=mysql_query($tableUsername);
if(mysql_num_rows($EsistUser)>0)
echo "Username già esistente";
else{
include "randomString.php";
$cod=randomString();
$cod='pinguino';
$pw = md5($_POST['pw']);
echo $pw;
$sql = "INSERT INTO `t_user` (`ID`, `username`, `mail`, `PW`,`controllo`) ";
$sql .= "VALUES (NULL, '{$_POST['username']}', '{$_POST['mail']}', '{$pw}', '{$cod}');";
if(mysql_query ($sql))echo 'ok';
else echo " noWay ";
$tableUsername = "SELECT * FROM t_user WHERE username = '{$_POST['username']}'";
$t_user=mysql_query($tableUsername);
$forID=mysql_fetch_array($t_user);
if(mysql_num_rows($t_user)==0)echo "error!";
else //Invio MAIL di conferma
{
echo "\n ".$_POST['mail'];
$a=$_POST['mail'];
$oggetto="Registrazione a Calendar";
$messaggio= " Segui il link per completare la registrazione :";
$messaggio.= " <a href=\"www.fellowshipofmad.altervista.org/Calendario/testMail.php"; //
$messaggio.= "?cod=".$cod."&user=".$_POST['username']." > link </a> ";
$intestazioni= "From:fellowshipofmad@altervista.org";
$intestazioni .= "Reply-To:fellowshipofmad@altervista.org";
$intestazioni .= "X-Mailer: PHP/".phpversion();
mail($a, $oggetto, $messaggio, $intestazioni);
}
}
?>
-
scusa ma la variabile $_POST['mail'] da dove arriva??? hai provato a fare un echo di quella variabile?
Poi se fosse che a prendi diretta, è SBAGLIATISSIMO! devi fare i controlli del caso, altrimenti se io scrivo seibrutto senza nulla, tu lo precessi come email...
-
Ogni campo dell'intestazione dovrebbe avere un come specificato nella documentazione.
Inoltre, se immetti dell'HTML, per poter essere parsato (sempre che il provider lo supporti), è necessario inserire le righe all'header:
Codice PHP:
// To send HTML mail, the Content-type header must be set
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
Comunque, prova a vedere:
-se il codice viene eseguito fino al mail()
-che parametri passi alla funzione mail()
-cosa ritorna la funzione mail()
Se ancora tutto sembra funzionare correttamente, prova a guardare se le email arrivano, ma si trovano in spam o posta indesiderata.
Ciao!