Ho installato Ubuntu 11.04, LAMP utilizzando taskel.
Trovo che PHP mail()
non funziona.
Suppongo di aver bisogno di abilitarlo o qualcosa del genere? Come faccio?
Migliore risposta
Dal manuale di posta di php:
Requisiti
Affinché le funzioni di posta siano
disponibili, PHP richiede un sistema di posta elettronica installato
e funzionante. Il programma
da utilizzare è definito dalle impostazioni di configurazione
nel file php.ini
.
Ciò significa che devi installare una sorta di server di posta e configurare php per usarlo. Di solito questo server di posta è suffisso in Ubuntu. Tuttavia, se il lato php che stai codificando verrà eventualmente archiviato sul lato di un servizio di hosting (ad es. xmission), molto probabilmente un server di posta sarà già installato lì. In tal caso, testa il tuo sito online anziché localmente.
Se hai bisogno di testarlo sul tuo sistema o intendi ospitarlo sul tuo server domestico, procedi con:
Installazione Postfix
Installazione:suffisso / sudo apt-get install postfix
Durante il processo ti verrà chiesto in quale modalità desideri installare Postfix. Ci sono quattro modalità possibili:
- Internet :il tuo server di posta.
- Satellite :per l'invio e la ricezione della posta verrà utilizzato un provider di posta esterno (ad es. Google). Il server non riceverà alcuna posta.
- Smarthost :Miscela tra i due. La posta viene archiviata localmente ma inviata tramite un provider di posta esterno.
- Solo locale :Non ti riguarderà. Questo è un server di posta interno di sistema. Puoi inviare e-mail solo da utente a utente sul sistema.
Il resto delle opzioni di installazione dipende dalla tua scelta di questa configurazione generale.
Molto probabilmente sceglierai un'installazione satellitare. Ciò significa che la posta verrà inviata utilizzando un provider esterno. Come smtp-server (server di posta in uscita) dovrai quindi specificare i tuoi provider smtp. Il resto delle opzioni è autoesplicativo.
Configurazione post installazione
La maggior parte dei server smtp richiede un'autenticazione tramite password per inviare la posta. Quindi Postfix dovrà conoscere quella password. Inoltre ci sono cose come la crittografia da considerare (che dovrai cercare su Google). Ecco come si configura postfix utilizzando l'autenticazione tramite password (sasl):
-
Installa i moduli libsasl2 e sasl2-bin facendo clic sulle icone del Software Center o dal terminale utilizzando:
sudo apt-get install libsasl2-2 libsasl2-modules sasl2-bin
-
Abilita sasl-auth aggiungendo queste righe a
/etc/postfix/main.cf
# add to /etc/postfix/main.cf smtp_sasl_auth_enable = yes smtp_sasl_security_options = noplaintext noanonymous smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
-
Crea un file
/etc/postfix/sasl_password
con una linea come:smtp.gmail.com [email protected]:USERPASSWORD
Sostituisci la password, il nome utente e l'indirizzo smtp effettivi.
-
Postfisso di aggiornamento:
sudo chmod 600 /etc/postfix/sasl_password # for safety of your smtp password sudo postmap hash:/etc/postfix/sasl_password sudo postmap /etc/postfix/sender_canonical sudo /etc/init.d/postfix restart
Potrebbe essere necessario aggirare il bug "permesso negato" con
chown postfix:postfix /etc/postfix
in anticipo.
Questo dovrebbe farlo nella maggior parte dei casi. Tuttavia, alcuni provider smtp richiedono un indirizzo specifico come mittente o crittografia.
Correlati:Anche l'interfaccia PEAR::Mail potrebbe interessarti.
Gmail (e forse altri servizi) potrebbe non piacere che tu stia tentando di inviare la posta in questo modo in quanto potrebbe essere considerato non sicuro per i loro standard e bloccherebbe il tuo tentativo, ad esempio non accadrà nulla sullo schermo o da qualche parte l'intero processo si bloccherebbe la tua autenticazione Anche il tuo POP3 deve essere abilitato.
Per contrastare che vedi qui. (Se vuoi andare sul sicuro, crea un account Gmail fittizio)