PDA

Visualizza la versione completa : Server SMTP e funzione mail()


Sifr
17-11-2006, 17:04
Ciao ragazzi,

vorrei fare in modo di consentire ad applicazioni in PHP su Apache2 di inviare email ad indirizzi remoti con la funzione mail().

Mentre non ci sono problemi a mandare messaggi agli utenti locali, quando provo ad inviare un'email a xyz@zyx.it questa viene recapitata all'utente www-data.

Il problema credo sia nel fatto che il server, poverino, non sappia a quale SMTP inviare il tutto, non avendoglielo mai specificato.

Quello che volevo sapere è: se io invio abitualmente posta tramite l'smtp del mio provider, posso specificarlo in qualche modo e risolvere tutto così? Altrimenti sapreste indicarmi una buona guida da cui partire per far funzionare exim4 (installato di default su Debian)?

oTTony
17-11-2006, 22:03
E' normale se invii una mail da una aplicazione php , viene recapitata a www-data , se vuoi recapitarla a altri utenti devi creare degli alias , io non uso exim ma comunque quello che vuoi fare tu è un server smpt di posta , trovi molti howto in giro .

Sifr
18-11-2006, 17:11
Ciao e grazie per la risposta.. cerco con queste informazioni in più di essere un po' più chiaro.

Allora, io scarico la posta da 3 account diversi e utilizzo l'SMTP dell'ISP per inviare messaggi con ciascuno dei 3 account. Per queste funzioni quotidiane uso Thunderbird che non ha bisogno, da quanto ho capito, di nessun programma esterno.

Adesso ho installato qmail, e con il comando

echo to: miaemail@remota.it | /var/qmail/bin/qmail-inject

vedo arrivare sulla casella di posta un messaggio vuoto da root@sifro.homelinux.net

Ora però mi manca di capire un paio di cose:

1) Se volessi che rispondendo all'email ricevuta, un utente remoto possa riscrivermi, cosa devo fare?

2) Ora bisogna configurare il php.ini.. mi sono informato su php.net e sulla documentazione dicono solo di impostare la variabile sendmail path facendola puntare all'eseguibile di qmail-inject, e così ho fatto, ma questo codice non funziona più



<?
$a="email";
$oggetto="oggetto mail";
$messaggio="prova messaggio mail con PHP";
mail($a, $oggetto, $messaggio);
?>


al posto di email ho provato a mettere sia un indirizzo remoto, sia il nome del mio utente locale (simone), sia simone@sifro.homelinux.net, senza risultati.

Inoltre, le email inviate tramite il comando echo etc.. etc.. se inviate da root arrivano in un attimo, se inviate dall'utente normale ci mettono diversi minuti.. sapreste dirmi perchè?

Ciao
Sifr

Sifr
19-11-2006, 08:41
Ok, sembra che ora tutto funzioni correttamente, però avrei una domanda.

Quando mi mando un'email noto che i campi from e return path contengono l'indirizzo anonymous@hostname.it... Se magari sono iscritto ad una ML, che accetta messaggi solo dai suoi iscritti, esiste un modo per utilizzare l'account registrato_alla_ML@autenticato.it al posto di anonymous@hostname.it?

:ciauz: :ciauz:

Loading