For at få mere kontrol over afsendelsen af mails har jeg bygget mit eget SMTP script der fungerer ca således:
<?php
$forbindelse = fsockopen(mail.example.com, 25);
fwrite($forbindelse, 'HELO mail.example.com');
$svar = fread($forbindelse, 1024);
?>
Det kører generelt set helt fint men nogle udbydere brokker sig over at jeg sender HELO før de melder '220 service ready'.
Mit script kommunikerer altså på følgende måde (S er server jeg vil sende til og C er mig som client):
C: HELO mail.example.com S: 220 service ready at mail.example.com S: 250 ok
Dette er principielt set forkert da 220 svaret skal komme inden HELO. Hvis jeg bruger telnet fra komandolinien kommer det til at se således ud (åbent eventuelt cmd / teminalen og tjek det ud):
C: telnet mail.example.com 25 S: 220 service ready at mail.example.com C: HELO mail.example.com S: 250 ok
Som i kan se så svarer serveren med 220 allerede når jeg opretter forbindelse med telnet men ikke hvis jeg bruger PHPs fsockopen(). Så hvad er det telnet gør som jeg mangler at gøre i PHP?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
var ellers noget af det første jeg prøvede. jeg har 2 funktioner en der skriver til en forbindelse og en der læser. kan se at jeg istedet for at læse kom til at skrive noget tomt input. det kan serveren jo ikke lide. beklager meget at jeg overså at jeg skulle læse istedet for at skrive tomt. har sidet oppe hele natten med det her pis. det virker. kast svar for point.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.