Inviare email con PHP usando SMTP

Sto realizzando un form per l'invio di email, ho settato tutti i parametri sul php.ini ma mi segnala

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\ms4w\Apache\htdocs\applica\sendmail.php on line 12
There was an error


Sul file .ini ho settato

smtp_port = 25, SMTP = localhost, sendmail_from = me@example.com.


Quindi non capisco perchè mi dia il messaggio sopra scritto!!

Scusate l'ingenuità, ma SMTP è già configurato se utilizzo apache che gira su locale?

Grazie...

inviato 5 anni fa
karbo
modificato 5 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

Ciao Karbo, per rispondere in modo diretto alla tua domanda: assolutamente no, infatti Apache è semplicemente un web server, non ha idea di come si gestiscano le email. Quello di cui hai bisogno per inviare email da locale è un server SMTP (Simple Mail Transfer Protocol) ma non è un task esattamente alla portata di tutti, in quanto porta con se un'interessante serie di problemi piuttosto complicati da risolvere.

Ricordo di aver provato Mercury Mail Transport qualche anno fa, ma con scarsi risultati.

Però potresti utilizzare un server SMTP remoto, come gmail ad esempio. Andando a configurare il tuo php.ini con i dati di connessione al server SMTP remoto PHP potrà delegare a lui l'invio delle email, in questo modo puoi risparmiarti i grattacapo derivanti dalla configurazione del tuo server SMTP locale.

risposto 5 anni fa
Andrea Turso
Andrea Turso
86
X 0 X X

In passato ho utilizzato questo semplice server SMTP installato sul mio PC Windows:

http://www.softstack.com/freesmtp.html

E' molto spartano quindi non richiede particolari configurazioni. Con le impostazioni che hai nel tuo php.ini dovrebbe funzionare.

risposto 5 anni fa
Gianni Tomasicchio
X 1 X

Se usi una libreria, come l'ottima swiftmailer, puoi astrarre tutto, anche l'uso di un server di posta in produzione diverso da quello locale. Addirittura puoi fare in modo che in locale le mail non siano inviate, ma comunque verificare che l' invio (in questo caso il finto invio) sia andato a buon fine.

risposto 5 anni fa
Massimiliano Arione
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda