Segue un semplice script che uso di tanto in tanto per verificare il corretto invio di posta da parte di un server SMTP autenticato. E’ praticamente la stessa cosa che si può fare manualmente con un telnet sulla porta 25 del server, ma dato che bisogna inviare username e password codificati base64, ho preferito creare uno script ad-hoc che simula tale connessione:
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 | #!/usr/bin/php -q <? if($argc==4){ $user=$argv[1];// prendo l'argomento passato allo script $pass= $argv[2];// prendo l'argomento passato allo script $server= $argv[3];// prendo l'argomento passato allo script $toemail='nobody@tophost.it'; echo'telnet mail.'.$server." 25"."\n"; $smtp_server=fsockopen('mail.'.$server,25,$errno,$errstr,30); if(!$smtp_server) { echo"Impossibile connettersi al server"; exit; } $inn=fgets($smtp_server);// output echo$inn; echo"HELO ".$server."\n"; fputs($smtp_server,"HELO ".$server."\r\n"); $inn=fgets($smtp_server);// output echo$inn; echo"AUTH LOGIN"."\n"; fputs($smtp_server,"AUTH LOGIN\r\n"); $inn=fgets($smtp_server);// output echo$inn; echobase64_encode($user)."\n"; fputs($smtp_server,base64_encode($user)."\r\n"); $inn=fgets($smtp_server);// output echo$inn; echobase64_encode($pass)."\n"; fputs($smtp_server,base64_encode($pass)."\r\n"); $inn=fgets($smtp_server);// output echo$inn; echo"MAIL FROM: info@$server"."\n"; fputs($smtp_server,"MAIL FROM: info@$server\r\n"); $inn=fgets($smtp_server);// output echo$inn; echo"RCPT TO: $toemail"."\n"; fputs($smtp_server,"RCPT TO: $toemail\r\n"); $inn=fgets($smtp_server);// output echo$inn; echo"RSET"."\n"; fputs($smtp_server,"RSET\r\n"); $inn=fgets($smtp_server);// output echo$inn; echo"QUIT"."\n"; fputs($smtp_server,"QUIT\r\n"); $inn=fgets($smtp_server);// output echo$inn; fclose($smtp_server); echo"\n"; }else{ echo"dati mancanti\nInserire user pass server\n"; } ?> |
Ora basta dare i privilegi di esecuzione allo script:
1 | chmod755test_smtp.php |
e poi eseguirlo come segue:
1 | ./test_smtp.php USER PASS SERVER |
dove:
USER: username usato per l’autenticazione
PASS: la relativa password
SERVER: il server verso cui effettuare la connessione
enjoy
Ti interessa acquistare un dominio a prezzi ultraconvenienti? clicca qui
Se hai trovato utili le informazioni su questo blog,
Fai una donazione!
Clicca sul bottone qui sotto o almeno clicca sul banner pubblicitario 🙂
Commenta