Molti mail server ormai richiedono la SMTP-AUTH per poter inviare messaggi a domini diversi dal loro; verifica SEMPRE quello che ti risponde il server, invece di limitarti ad attendere col ciclo delay: in questa maniera stai ignorando tutti gli errori.
Guarda questa sessione di esempio con un server di un dominio Aruba:
codice:
220 mxavas5.aruba.it ESMTP
ehlo MItaly
250-mxavas5.aruba.it
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-PIPELINING
250 8BITMIME
MAIL FROM: <MItaly>
250 ok
RCPT TO: <test@mitaly_fake_domain.com>
553 sorry, you need to supply the correct username and password for SMTP-AUTH (#
5.7.1)
e così pure con il server di posta di html.it:
codice:
220 mail.hwupgrade.it NO UCE ESMTP Postfix
EHLO MItaly
250-mail.hwupgrade.it
250-PIPELINING
250-SIZE
250-VRFY
250-ETRN
250 8BITMIME
MAIL FROM: <MItaly>
250 Ok
RCPT TO: <test@mitaly_fake_domain.com>
554 <test@mitaly_fake_domain.com>: Relay access denied
Come potrai notare entrambi si rifiutano di inviare messaggi ad altri domini se il client non si è autenticato; se invece si invia una mail ad un indirizzo del loro dominio le cose cambiano:
codice:
220 mxavas12.aruba.it ESMTP
EHLO MItaly
250-mxavas12.aruba.it
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-PIPELINING
250 8BITMIME
MAIL FROM: <mitaly@x.com>
250 ok
RCPT TO: <ciao@dominioaruba.net>
250 ok
DATA
354 go ahead
Ciao
.
250 ok 1150580663 qp 21709
Dai un'occhiata qui: http://en.wikipedia.org/wiki/SMTP_AUTH