Toon posts:

smtp server onbereikbaar na wisselen router

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

Heb net mijn router (draytek vigor 2200e, met DMZ aan) omgewisseld voor een edimax br6104k.
Dit omdat de draytek maar max 5-6 mbit aan kon.

Nu kan ik mijn website gewoon bereiken via het externe ip-adres, omdat ik de poortforwarding etc heb aangezet. Onderstaande poorten heb ik geforward:

code:
1
2
3
4
5
6
7
8
1   192.168.2.100   80  TCP+UDP 80  server - http   
2   192.168.2.100   20  TCP+UDP 20  server - ftp    
3   192.168.2.100   21  TCP+UDP 21  server - ftp    
4   192.168.2.100   22  TCP+UDP 22  server - ssh    
5   192.168.2.100   25  TCP+UDP 25  server - mail   
6   192.168.2.100   110 TCP+UDP 110 server - mail   
7   192.168.2.100   10000   TCP+UDP 10000   server - webmin 
8   192.168.2.100   1024    TCP+UDP 1924    server - mail


Alleen het probleem nu is dat én het contact-formulier op de website én het forum phpbb niet meer kunnen connecten met de smtp-server.

Zelf met een poort-forwarding ipv virtual server werkt het niet:
code:
1
1   192.168.2.100   TCP+UDP 1-65535 webserver



Welke poort ben ik vergeten? ik dacht toch dat poort 25 moest worden gebruikt. http. ftp. ssh, webmin werken allemaal.


Dit is het mail-script:
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
59
60
61
62
63
64
65
66
67
function sock_mail($auth,$to, $subj, $body, $head, $from){
       $lb="\r\n";                        //linebreak
       $body_lb="\r\n";                //body linebreak
       $loc_host = "localhost";        //localhost
       $smtp_acc = "info@xxxxxxxx.nl";        //account
       $smtp_pass="xxxxxxxxxxx";            //password
       $smtp_host="mail.xxxxxxxxxx.nl";    //server SMTP
       $hdr = explode($lb,$head);        //header
       
       if($body) {$bdy = preg_replace("/^\./","..",explode($body_lb,$body));}
       
       // build the array for the SMTP dialog. Line content is array(command, success code, additonal error message)
       if($auth == 1){// SMTP authentication methode AUTH LOGIN, use extended HELO "EHLO"
           $smtp = array(
               // call the server and tell the name of your local host
               array("EHLO ".$loc_host.$lb,"220,250","HELO error: "),
               // request to auth
               array("AUTH LOGIN".$lb,"334","AUTH error:"),
               // username
               array(base64_encode($smtp_acc).$lb,"334","AUTHENTIFICATION error : "),
               // password
               array(base64_encode($smtp_pass).$lb,"235","AUTHENTIFICATION error : "));
       } 
       else {// no authentication, use standard HELO    
           $smtp = array(
               // call the server and tell the name of your local host
               array("HELO ".$loc_host.$lb,"220,250","HELO error: "));
       }
   
       
       // envelop
       $smtp[] = array("MAIL FROM: <".$from.">".$lb,"250","MAIL FROM error: ");
       $smtp[] = array("RCPT TO: <".$to.">".$lb,"250","RCPT TO error: ");
       // begin data        
       $smtp[] = array("DATA".$lb,"354","DATA error: ");
       // header
       $smtp[] = array("Subject: ".$subj.$lb,"","");
       $smtp[] = array("To:".$to.$lb,"","");        
       foreach($hdr as $h) {$smtp[] = array($h.$lb,"","");}
       // end header, begin the body
       $smtp[] = array($lb,"","");
       if($bdy) {foreach($bdy as $b) {$smtp[] = array($b.$body_lb,"","");}}
       // end of message
       $smtp[] = array(".".$lb,"250","DATA(end)error: ");
       $smtp[] = array("QUIT".$lb,"221","QUIT error: ");

       // open socket
       $fp = @fsockopen($smtp_host, 25);
       if (!$fp) echo "<b>Error:</b> Cannot conect to ".$smtp_host."<br>";
       
       $banner = @fgets($fp, 1024);
       // perform the SMTP dialog with all lines of the list
       foreach($smtp as $req){
           $r = $req[0];
           // send request
           @fputs($fp, $req[0]);
           // get available server messages and stop on errors
           if($req[1]){
               while($result = @fgets($fp, 1024)){if(substr($result,3,1) == " ") { break; }};
               if (!strstr($req[1],substr($result,0,3))) echo"$req[2].$result<br>";
           }
       }
       $result = @fgets($fp, 1024);
       // close socket
       @fclose($fp);
       return 1;
   }

[ Voor 58% gewijzigd door Verwijderd op 11-09-2006 16:19 ]


  • MADG0BLIN
  • Registratie: Juni 2001
  • Laatst online: 00:39
Hoe ziet het script eruit dat je contact formulier gebruikt? En wat gebeurt er als je connect met telnet op poort 25?

Verwijderd

Topicstarter
Heb het script er even bijgezet. Voorheen werkte het gewoon wel (met de oude router), en hij connect op poort 25

  • Poltergeist
  • Registratie: Oktober 2000
  • Laatst online: 01-04 13:53
De Firewall ook aangepast, zodat niet al het verkeer geblokkeerd wordt? Ik had dat met een Zyxel router: Alle poorten netjes ingesteld. Blijkt het niet te werken. kwam doordat er in de firewall was ingesteld dat WAN->LAN verkeer gestopt moest worden...

Verwijderd

Topicstarter
De firewall staat uit.

Verwijderd

Topicstarter
Heb het nu opgelost door gewoon mail() te gebruiken.

Heb sendmail geinstalleerd, en in /etc/mail/relay-domains alleen localhost gezet.

Nu luistert hij alleen naar localhost toch? Kan in ieder geval niet meer mail versturen via de smtp-server vanaf mijn andere pc, en dat ging voor deze aanpassing wel.
Pagina: 1