View Full Version : Configurare sendmail su Debian/Apache?
UnknownSoldier
16-06-2013, 17:35
Ciao a tutti.
Da ore ormai sto provando a configurare l'invio delle e-mail da PHP attraverso la funzione mail().
Ho un server virtuale, e ho fatto così (collegato come root ovviamente):
apt-get install sendmail
Quindi ho modificato il php.ini, per la precisione questa riga:
sendmail_path = /usr/share/sendmail -t
Ho riavviato apache:
/etc/init.d/apache2 restart
Ma quando provo ad eseguire uno script che va a chiamare mail(), questa mi restituisce false...
Qualcuno per favore saprebbe aiutarmi? :)
Grazie.
Tasslehoff
17-06-2013, 22:55
Non sono uno sviluppatore php per cui lato sviluppo posso solo che consigliarti di verificare la sintassi di quella funzione sul sito ufficiale.
A parte questo che credo tu abbia già fatto posso consigliarti di controllare nell'access.log e nell'error.log (o log corrispondenti se li hai personalizzati) i dettagli del perchè la funzione mail ti ha restituito false.
A meno di cose evidenti in quei log posso consigliarti di procedere a step, anzitutto tu stai cercando di spedire ad un utente locale del server oppure ad un indirizzo di un dominio esterno?
Nel qual caso verifica che la spedizione funzioni da terminale prima che da php, prova a lanciare un
echo "testo di prova" | mail -s "subject di prova" <email destinatario>e verifica nel log di sendmail (/var/log/mail.log o /var/log/maillog o simili) se il messaggio è stato consegnato oppure se è in coda oppure cos'altro.
Potrebbero esserci problemi di rete che non permettono alla macchina di connettersi agli smtp dei domini dei destinatari?
Oppure si collegano, consegnano le mail ma queste vengono rifiutate perchè non arrivando da un sender corretto?
Oppure vengono rifiutate perchè arrivano da un ip su cui non è possibile fare risoluzione dns inversa e quindi marcate come spam?
Potrebbe essere necessario configurare sendmail per spedire utilizzando un altro smtp (es l'smtp del tuo provider) come smarthost.
Come vedi le possibili cause sono tante, dai un'occhiata ai log prima di tutto e fai un test di spedizione da OS, se quella va a buon fine secondo me puoi cominciare ad indagare su php.
Puoi anche pensare di guardare nei log di php o di apache il motivo dell'errore...
UnknownSoldier
19-06-2013, 21:20
Intanto grazie tante per i vostri interventi!
Dunque, io purtroppo di server e di sistemi me ne intendo ben poco...
In questi giorni ho installato Postfix, e da quel momento sono riuscito a far partire le e-mail dagli script PHP, l'unico problema è che questi messaggi (che spedivo per prova ad un mio indirizzo Gmail) andavano a finire nella cartella Spam.
Adesso, mentre stavo facendo altri test su delle pagine del mio sito, le quali richiedono l'invio di e-mail, ho notato che purtroppo non sempre i messaggi giungono a destinazione.
Quindi ho letto le vostre risposte, e innanzitutto ho provato a spedire una e-mail di prova da console come suggerito da Tasslehoff, e l'e-mail non solo è partita, ma è anche arrivata in Posta in arrivo e non in Spam! :eek:
Evidentemente ho sbagliato qualcosa nella configurazione di PHP, anche se ancora non riesco a capire cosa...
Quindi ho guardato i file mail.log e mail.err, e ho controllato che quando le e-mail non arrivano a destinazione, ci sono messaggi tipo:
1] Our system has detected an unusual rate 550-5.7.1 of unsolicited mail originating from your IP address. To protect our 550-5.7.1 users from spam, mail sent from your IP address has been blocked. 550-5.7.1 Please visit http://www.google.com/mail/help/bulk_mail.html
Vabbé, qui mi andrò poi a leggere questa pagina di google non appena avrò un pò di tempo.
Altri messaggi di errore sono:
DCE9C1801F8: to=<www-data@miodominio.net>, relay=smtp-avas-th.seeweb.it[2001:4b78:1:20::2]:25, delay=0.29, delays=0/0/0.24/0.05, dsn=5.7.1, status=bounced (host smtp-avas-th.seeweb.it[2001:4b78:1:20::2] said: 554 5.7.1 <Debian-70-wheezy-64-LAMP>: Helo command rejected: unqualified HELO hostname - please contact postmaster@seeweb.it (in reply to RCPT TO command))
Non è che in questo caso il problema sia il fatto che non ho ancora agganciato il mio dominio (miodominio.net) al server virtuale? Anche se non mi spiego com'è che a volte vengono inviate e a volte no queste e-mail... e sopratuttto, com'è che da console invece funzionano bene? o_O
UnknownSoldier
20-06-2013, 17:36
Ho appena fatto una prova con PHPMailer e l'e-mail è arrivata correttamente nella posta in arrivo, quindi il problema sembra essersi risolto così! :O
Come prima cosa verifica che il tuo postfix non ascolti sulla posta pubblica e faccia da open-relay per tutto il mondo.
In secondo luogo i log dicono che sei stato bloccato a più riprese in quanto identificato come spammer.
UnknownSoldier
21-06-2013, 19:09
Dunque, ho riconfigurato Postfix per utilizzarlo con SMTP. Quindi ho specificato i dati di una mia casella di posta elettronica.
Dopodiché ho utilizzato PHPMailer, anche qui settando tutte le proprietà necessarie per agganciarmi a SMTP, e adesso tutte le e-mail che spedisco (a un mio indirizzo Gmail) arrivano in posta in arrivo! L'unico problema è che se ci aggiungo un link (in HTML) nel corpo dell'e-mail, questa ritorna ad essere piazzata in Spam... come è possibile? Come faccio a risolvere? Io ho assolutamente bisogno di inserire link! :(
Tasslehoff
24-06-2013, 00:39
Premesso che le mail in html non si devono mandare (per gli ipertesti esiste un protocollo ed è l'http non smtp), presumo che il tuo problema sia dovuto alla sintassi che usi per i link.
Controlla bene le best practice per l'uso di html nelle mail (http://www.w3.org/TR/1998/NOTE-HTMLThreading-0105).
UnknownSoldier
24-06-2013, 08:28
Premesso che le mail in html non si devono mandare (per gli ipertesti esiste un protocollo ed è l'http non smtp), presumo che il tuo problema sia dovuto alla sintassi che usi per i link.
Controlla bene le best practice per l'uso di html nelle mail (http://www.w3.org/TR/1998/NOTE-HTMLThreading-0105).
Il problema è che la posta va in spam anche se inserisco un link nelle e-mail di testo... il tuo link non funziona comunque, appena posso cerco io la pagina che intendi. ;)
Tasslehoff
24-06-2013, 11:17
Il problema è che la posta va in spam anche se inserisco un link nelle e-mail di testo... il tuo link non funziona comunque, appena posso cerco io la pagina che intendi. ;)Era rimasta inserita nella url anche la parentesi, prova ora :)
UnknownSoldier
24-06-2013, 20:51
Scusate, c'è un qualcosa di anomalo... quando tento di spedire un'e-mail, la spedizione non sta più andando a buon fine.
Controllando auth.log in /var/log/ mi ritrovo questi messaggi:
Jun 24 21:39:14 Debian-70-wheezy-64-LAMP sshd[10995]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=servermundi.net user=root
Jun 24 21:39:16 Debian-70-wheezy-64-LAMP sshd[10995]: Failed password for root from 199.19.106.225 port 48245 ssh2
Jun 24 21:39:16 Debian-70-wheezy-64-LAMP sshd[10995]: Received disconnect from 199.19.106.225: 11: Bye Bye [preauth]
Jun 24 21:40:25 Debian-70-wheezy-64-LAMP sshd[10997]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=servermundi.net user=root
Jun 24 21:40:27 Debian-70-wheezy-64-LAMP sshd[10997]: Failed password for root from 199.19.106.225 port 37344 ssh2
Jun 24 21:40:27 Debian-70-wheezy-64-LAMP sshd[10997]: Received disconnect from 199.19.106.225: 11: Bye Bye [preauth]
Jun 24 21:41:36 Debian-70-wheezy-64-LAMP sshd[10999]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=servermundi.net user=root
Jun 24 21:41:38 Debian-70-wheezy-64-LAMP sshd[10999]: Failed password for root from 199.19.106.225 port 54656 ssh2
Jun 24 21:41:39 Debian-70-wheezy-64-LAMP sshd[10999]: Received disconnect from 199.19.106.225: 11: Bye Bye [preauth]
Jun 24 21:42:48 Debian-70-wheezy-64-LAMP sshd[11001]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=servermundi.net user=root
Jun 24 21:42:50 Debian-70-wheezy-64-LAMP sshd[11001]: Failed password for root from 199.19.106.225 port 43692 ssh2
Jun 24 21:42:50 Debian-70-wheezy-64-LAMP sshd[11001]: Received disconnect from 199.19.106.225: 11: Bye Bye [preauth]
Jun 24 21:42:52 Debian-70-wheezy-64-LAMP sshd[11003]: Accepted password for root from 62.98.84.9 port 51646 ssh2
Jun 24 21:42:52 Debian-70-wheezy-64-LAMP sshd[11003]: pam_unix(sshd:session): session opened for user root by (uid=0)
Jun 24 21:42:53 Debian-70-wheezy-64-LAMP sshd[11003]: subsystem request for sftp by user root
Come è possibile vedere, spesso il login non va a buon fine (e qui si spiegherebbe anche la durata dell'invio di circa 2 secondi). Si può chiaramente leggere una chiamata da parte dell'host servermundi.net??? Ho provato a collegarmici e mi pare un normale server che c'è in rete, ma cosa può c'entrare coi miei log?
/var/log/mail.log invece non viene più interessato...
Qualcuno mi potrebbe chiarire un pò le idee per favore? :(
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.