Script php per invio email con controllo sintassi e record MX

Gianluca1972

Nuovo Utente
9 Mag 2006
14
0
0
Ciao a tutti,
sono alle prime armi con il php ed ho subito un problema per voi (proplema per me, per qualcuno di voi magari una stupidata). Non riesco proprio a capire cosa c'è di sbagliato che non fa eseguire gli ultimi comandi header e mail
Ecco lo script:

<?php
$email = $_POST['email'];
$receiverMail = $_POST['mailto'];
$subject = $_POST['subject'];
$redirect = $_POST['redirect'];
$stringa = "L'email che hai inserito non è valida";
$msgformat = "ISCRIZIONE ALLA MAILING LIST\n\nEmail: $email";

if (eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $email))

{list($alias, $domain) = split("@", $email);

if (checkdnsrr($domain, "MX"))

{
getmxrr($domain, $mxhosts);
foreach($mxhosts as $mxKey => $mxValue);
}

else {
echo "<script language=\"JavaScript\">\n";
echo "alert(\"$stringa\");\n";
echo "history.back();";
echo "</script>";
}
}
else {
echo "<script language=\"JavaScript\">\n";
echo "alert(\"$stringa\");\n";
echo "history.back();";
echo "</script>";
}

else {
header("Location: $redirect");
mail($receiverMail, $subject, $msgformat, "From: $email");
}
?>
 
Il comando header non può assolutamente essere eseguito dopo echo altrimenti compare la scritta

header already sent by...blablabla...
era questo l'errore che ti dava?
 
Dusy ha scritto:
Il comando header non può assolutamente essere eseguito dopo echo altrimenti compare la scritta

header already sent by...blablabla...
era questo l'errore che ti dava?

Esatto.
Comunque risolto così il problema del redirect:

{
echo "<script language=\"JavaScript\">\n";
echo "window.location.href=(\"$redirect\");\n";
echo "</script>";
}


Ora però il problema è che la funzione 'mail' mi invia la mail a prescindere che l'indirizzo sia validato o meno. Mi sai aiutare?

Ti riposto l'interto script:

<?php

$email = $_POST['email'];
$receiverMail = $_POST['mailto'];
$subject = $_POST['subject'];
$redirect = $_POST['redirect'];
$stringa = "L'email che hai inserito non è valida";
$msgformat = "ISCRIZIONE ALLA MAILING LIST\n\nEmail: $email";

if (eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $email))

{list($alias, $domain) = split("@", $email);

if (checkdnsrr($domain, "MX"))

{
getmxrr($domain, $mxhosts);
foreach($mxhosts as $mxKey => $mxValue);
}

else {
echo "<script language=\"JavaScript\">\n";
echo "alert(\"$stringa\");\n";
echo "history.back();";
echo "</script>";
}
}
else {
echo "<script language=\"JavaScript\">\n";
echo "alert(\"$stringa\");\n";
echo "history.back();";
echo "</script>";
}

{
echo "<script language=\"JavaScript\">\n";
echo "window.location.href=(\"$redirect\");\n";
echo "</script>";
mail($receiverMail, $subject, $msgformat, "From: $email");
}
?>

Grazie.
 
Prova... se ho capito bene...


<?php

$email = $_POST['email'];
$receiverMail = $_POST['mailto'];
$subject = $_POST['subject'];
$redirect = $_POST['redirect'];
$stringa = "L'email che hai inserito non è valida";
$msgformat = "ISCRIZIONE ALLA MAILING LIST\n\nEmail: $email";

if (eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $email))
{

list($alias, $domain) = split("@", $email);
if (checkdnsrr($domain, "MX"))
{
getmxrr($domain, $mxhosts);
foreach($mxhosts as $mxKey => $mxValue);

mail($receiverMail, $subject, $msgformat, "From: $email");
echo "<script language=\"JavaScript\">\n";
echo "window.location.href=(\"$redirect\");\n";
echo "</script>";


}
else
{
echo "<script language=\"JavaScript\">\n";
echo "alert(\"$stringa\");\n";
echo "history.back();";
echo "</script>";
}
}
else
{
echo "<script language=\"JavaScript\">\n";
echo "alert(\"$stringa\");\n";
echo "history.back();";
echo "</script>";
}


?>
 
Oh yeah

Funziona!! Grazie.
Era una c....ta ovviamente...

Ti chiedo un'altra cosa: secondo te è difficile implementare ulteriormente lo script aggiungendo anche il controllo dell'utente? Mi spiego meglio: oltre a controllare l'esistenza del dominio verificare anche che presso quel server esista quell'utente?

:fonzie:
 
Keine ahnung...
non lo so sinceramente era la prima volta che vedevo quella funzione sull'MX... si impara sempre qualcosa di nuovo ;)

Comunque tieni sott'occhio il post che mi documento,
è una cosa che interessa anche a me!
 

Discussioni simili