Warning: mail(): SMTP server response: 550 unrouteable address
Als de mensen mijn demoprogramma willen opstarten moeten zij nu een e-mailadres invoeren.
Tijdens het testen van het programma heb ik een niet bestaand e-mailadres ingevoerd.
ik kreeg volgende melding
"Warning: mail(): SMTP server response: 550 unrouteable address"
Wat eigenlijk goed is maar hij stopt het programma niet.
Hoe kan ik als er zo een "Warning" komt het programma laten stoppen. Op die manier kan de persoon die zich niet wenst te identifieren niet verder gaan.
Met vriendelijke groeten,
Marc
if(@mail(parameters)){
ga door
}else{
stop -> mailen namelijk mislukt
}
Het apenstaartje is om de foutmelding te drukken. Mail() en een heleboel andere functies ook, geven de boonlean waarde 'true' terug als ze geslaagd zijn, en 'false' als ze valen.
Falen dus.
(vreemd dat de spellingscorrector 'valen' dan toch niet onderstreept... Het staat niet in het van Dale woordenboek)
hij gaat met zo'n mailadres gewoon naar 'ga door '
(ook geeen fout melding ! )
if ( mail ( "bladibla.blabla" , " sub ", " msg ") )
Hoe kun je controleren of email adres bestaat: echt bestaat/ingebruik is ( ipv. lijkt het te voldoen aan de regels voor een email adres )
ps. test is wel false als je er meer dan 1 @ in zet.
Quote:
mail() returns TRUE if the mail was successfully accepted for delivery, FALSE otherwise.
Jelmer:
Vreemd, want in de handleiding van PHP staat:
[mail() returns TRUE if the mail was successfully accepted for delivery, FALSE otherwise.
[mail() returns TRUE if the mail was successfully accepted for delivery, FALSE otherwise.
Warning: mail(): SMTP server response: 550 unrouteable address
Deze error komt van de mailserver. Dus de mail is verzonden, alleen kan de mailserver de mail niet verder sturen omdat (waarschijnlijk) het domain niet bestaat.
SanThe heeft gelijk. Ik had namelijk als e-mail adres ingevoerd "[email protected]".
Maar kan je met die foutmelding in PHP dan niks doen. PHP verwerkt ze toch blijkbaar.
"Warning: mail(): SMTP server response: 550 unrouteable address"
In verband met het
Quote:
Hoe kun je controleren of email adres bestaat: echt bestaat/ingebruik is ( ipv. lijkt het te voldoen aan de regels voor een email adres )
Ik heb het volgende gevonden op een andere site maar ergens moet ik iets vergeten zijn want het werkt niet zoals het moet
// CODE PAGE DE SAISI DU FORMULAIRE enter_POP.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Document zonder titel</title>
</head>
<body>
<p align="center"><strong>Programma welke toelaat te controleren of een emailadres werkelijk bestaat </strong></p>
<p align="center"> </p>
<p> </p>
<form name="form1" method="post" action="telnetemailverif.php">
<p>
Leverancier: Ex: tiscali.nl
<input type="text" name="leverancier">
</p>
<p>smtp: ex: smtp.tiscali.nl
<input type="text" name="smtp"></p>
<p> mail :ex: [email protected]
<input type="text" name="mail"> </p>
<p>
<input type="submit" name="Submit" value="valider">
</p>
</form>
<strong>Auteur: ceced </strong>
</body>
</html>
// Einde van formulier
// CODE PAGE telnetemailverif.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
//CLASS SMTP send
class funavecSMTP{
var $fp;
function send($data){
echo nl2br($data)."<br>\n";
fputs($this->fp, $data."\r\n");
$this->recv();
}
/*Functie welke toelaat om een antwoord te verkrijgen van de server "OK" in blauw en geweigerd of e-mailadres fout in het rood code telnet = 512*/
function recv(){
$response=fgets($this->fp, 512);
list ($errno, $errmsg) = split (" ", $response);
if ($errno<500){
echo "<font color=\"blue\">$response</font>\n<br>";
}else{
echo "<font color=\"red\">$response</font>\n<br>";
exit;
}
}
// FONCTION OPEN smtp
function open($smtpserver,$ti=2){
$this->fp = fsockopen($smtpserver, 25, $errno, $errstr, $ti);
if (!$this->fp){
echo "<b>echec d'ouverture $smtpserver</b><br><font color=\"red\">$errstr ($errno).</font><hr>\n";
exit;
}
$this->recv();
}
function close(){
fclose($this->fp);
}
}
$fun = new funavecSMTP;
$mySMTPserver = "$smtp";
$terminator=".";
$fun->open($mySMTPserver);
$fun->send("HELO $leverancier");
$fun->send("VRFY $mail");
/*Om een ander commando uit te voeren moet je hier enkel dat commando toevoegen
voorbeel : $fun->send("help");// help zijn alle mogelijke commando's van telnet voor 25
*/
$fun->send("QUIT");
$fun->close();
?>
//CLASS SMTP send
class funavecSMTP{
var $fp;
function send($data){
echo nl2br($data)."<br>\n";
fputs($this->fp, $data."\r\n");
$this->recv();
}
/*Functie welke toelaat om een antwoord te verkrijgen van de server "OK" in blauw en geweigerd of e-mailadres fout in het rood code telnet = 512*/
function recv(){
$response=fgets($this->fp, 512);
list ($errno, $errmsg) = split (" ", $response);
if ($errno<500){
echo "<font color=\"blue\">$response</font>\n<br>";
}else{
echo "<font color=\"red\">$response</font>\n<br>";
exit;
}
}
// FONCTION OPEN smtp
function open($smtpserver,$ti=2){
$this->fp = fsockopen($smtpserver, 25, $errno, $errstr, $ti);
if (!$this->fp){
echo "<b>echec d'ouverture $smtpserver</b><br><font color=\"red\">$errstr ($errno).</font><hr>\n";
exit;
}
$this->recv();
}
function close(){
fclose($this->fp);
}
}
$fun = new funavecSMTP;
$mySMTPserver = "$smtp";
$terminator=".";
$fun->open($mySMTPserver);
$fun->send("HELO $leverancier");
$fun->send("VRFY $mail");
/*Om een ander commando uit te voeren moet je hier enkel dat commando toevoegen
voorbeel : $fun->send("help");// help zijn alle mogelijke commando's van telnet voor 25
*/
$fun->send("QUIT");
$fun->close();
?>
Als er iemand is die kan zeggen wat er fout is dan is alles in een keer opgelost
Met vriendelijke groeten,
Marc
Gewijzigd op 31/07/2005 19:23:00 door Marc