Swiftmailer trasporto SMTP rifiutando indirizzo IP locale
-
09-10-2019 - |
Domanda
Sto cercando di inviare una e-mail utilizzando lo Swift_SmtpTransport ma sto ottenendo il seguente errore:
501 5.5.2 <[:: 1]>: Comando Helo rifiutato: indirizzo IP non valido
Il server SMTP è un server remoto e funziona dal mio server di produzione, ma non dalla mia macchina di sviluppo, che è in esecuzione OS X.
Inoltre non si preoccupa di un'eccezione, invece mi ha richiesto di utilizzare un plugin logger per scoprire il motivo per cui non funzionava.
Che cosa posso fare per farlo utilizzare un indirizzo IP reale?
Soluzione
Ho fatto qualche rovistando nel codice e l'ho trovato.
Quando si configura il trasporto SMTP, è necessario chiamare setLocalDomain (). Utilizzo di PHP su OS X, il valore predefinito a ":: 1", che viene rifiutato dal server remoto. Ho appena aggiunto una linea nella mia configurazione di sviluppo per set che:
$transport = Swift_SmtpTransport::newInstance('mail.pantsburger.com', 587);
if (SITE_ENV == SITE_ENV_DEV) {
$transport->setLocalDomain('[127.0.0.1]');
}
Credo che questo sia anche un bug con Swiftmailer -. In realtà dovrebbe essere un'eccezione per qualcosa di simile, piuttosto che appena messa in vendita di ogni destinatario come "fallito"