2011-08-24 21 views
5

C'è un motivo per cui SwiftMail API per PHP non verrà eseguito su HostGator? Il loro supporto tecnico ha detto di usare il comando mail() e che le connessioni socket alla porta 25 non funzioneranno così sul loro piano di hosting condiviso. Mi sono lamentato e ho detto che quando vai su Google come inviare allegati con mail(), le persone ti dicono di usare SwiftMail. Ho bisogno di inviare file allegati con l'e-mail.HostGator non invia posta tramite API SwiftMail PHP

Il mio codice funziona perfettamente su A2Hosting, ma non su HostGator. Nell'API, sto inviando a localhost sulla porta 25, non usando l'autenticazione, non usando SSL e utilizzando un indirizzo email valido che esiste su questo host (fingere che sia example.com) - [email protected]

L'errore che sto ottenendo è:

Warning: fsockopen() [function.fsockopen]: unable to connect to localhost:25 (Connection refused) in /home/user/public_html/mywebsite/addons/swiftmail-4.0.3/lib/classes/Swift/Transport/StreamBuffer.php on line 243 

Fatal error: Uncaught exception 'Swift_TransportException' with message 'Connection could not be established with host localhost [Connection refused #111]' in /home/user/public_html/mywebsite/addons/swiftmail-4.0.3/lib/classes/Swift/Transport/StreamBuffer.php:245 Stack trace: #0 /home/user/public_html/mywebsite/addons/swiftmail-4.0.3/lib/classes/Swift/Transport/StreamBuffer.php(80): Swift_Transport_StreamBuffer->_establishSocketConnection() #1 /home/user/public_html/mywebsite/addons/swiftmail-4.0.3/lib/classes/Swift/Transport/AbstractSmtpTransport.php(111): Swift_Transport_StreamBuffer->initialize(Array) #2 /home/user/public_html/mywebsite/addons/swiftmail-4.0.3/lib/classes/Swift/Mailer.php(84): Swift_Transport_AbstractSmtpTransport->start() #3 /home/user/public_html/mywebsite/mailer.php(34): Swift_Mailer->send(Object(Swift_Message)) #4 /home/user/public_html/mywebsite/mailer.php(146): Mailer->sendMail() #5 {main} thrown in /home/user/public_html/mywebsite/addons/swiftmail-4.0.3/lib/classes/Swift/Transport/StreamBuffer.php on line 245 

Se hai ottenuto SwiftMail API per lavorare su HostGator, si prega di condividere quello che hai fatto.

risposta

13

Puoi provare a utilizzare Swift_MailTransport anziché Swift_SmtpTransport che utilizzerà la chiamata nativa mail() dietro le quinte.

Non ho esperienza con HostGator ma se il loro supporto dice che il sistema consente l'invio tramite mail() questo dovrebbe funzionare correttamente.

4

Ho eseguito alcuni test e ho trovato la risposta alla fine. Lo fa il lavoro, ma ecco come:

  • porta uso 25, non una porta alternativa
  • non usare SSL/TLS
  • utilizza un utente/passaggio non è necessario, ma funziona con o senza di essa
  • non utilizzare 'localhost' - utilizzare il nome del dominio in cui è presente l'account di posta, se è il dominio principale, dominio addon, sottodominio o dominio parcheggiato
  • assicurarsi che l'account di posta elettronica di invio esista e che esista nel contesto del dominio che desideri. Ad esempio, potrei avere example1.com come dominio principale e example2.com come dominio addon per il mio progetto. Quindi, nel mio codice progetto, creerò un account [email protected] in cPanel e quindi useremo come indirizzo email di invio con l'API SwiftMailer.
+0

Questo praticamente si verificherà su qualsiasi account di hosting. Potresti riuscire a eseguire il debug inviando email a noreply (senza dominio.com alla fine), ma non volerà su un account di hosting e dovrai aggiungere non solo il dominio.com, ma anche creare l'account di posta. – Volomike

+0

qualsiasi idea non riesco a inviare posta su hostgator usando il mailer veloce, ma ero in grado di inviare posta da localhost usando il server smtp di gmail, penso che ci sia errore in $ transport = Swift_MailTransport :: newInstance (nome del server in uscita, 25); in questa riga, l'output restituisce false. – shruti

0

utilizzando un indirizzo email valido che esiste su questo host (finta che sia example.com) - [email protected]

sei sicuro che il mailserver si trova nella stessa casella? hai provato a scavare il record mx di example.com

0

Sto usando SwiftMail per PHP con hostgator con Swift_SmtpTransport che si connette a gmail su ssl. All'inizio stavo ottenendo una "connessione non stabilita con host smtp.gmail.com [Connection refused # 111]". L'uso di Swift_MailTransport ha funzionato, ma non mi piaceva quella soluzione perché usava il server di posta di hostgator; Volevo utilizzare un account email di google apps per inviare l'email.

Ho dovuto chiedere al supporto tecnico di HostGator di autorizzare l'utente cPanel nel firewall per SMTP, e quindi tutto ha funzionato bene.

2

Si scopre se si sta tentando di inviare a un dominio che si trova nel proprio CPanel, anche se si dispone di posta elettronica ospitata da qualche altra parte, il proprio server di posta tenta di inoltrare il messaggio a una cassetta postale locale invece di consultare i record MX per dominio.

La correzione consiste nel dire loro di rimuovere il dominio che si sta tentando di inviare tramite posta elettronica dall'opzione localhost nel proprio file di configurazione del server di posta exim.

0

Ho ricevuto questo errore durante il tentativo di inviare e-mail utilizzando il servizio di posta semplice di Amazon. Alla fine si è scoperto che le mie credenziali per l'utilizzo di AmazonSES erano sbagliate. Una volta ottenuto questo, tutto è stato risolto per me.

A proposito, stavo usando PHP Swift_SmtpTransport