PDA

View Full Version : php e mandare mail...


soalle
01-10-2002, 16:32
Sto costruendo un sito e mi interessava sapere come si fa in php a mandare una email ad un indirizzo specifico...
Sto programmando sotto linux mdk 8.2 con bluefish 0.7, apache 1.3.23 e php 4.1.2...
E' necessario attivare qualche servizio perché si riesca a mandare la mail?

Grazie mille
Soalle

cionci
02-10-2002, 09:32
Cerca "Funzioni di Mail" nell'help...
C'è spiegato come impostare il file di congifurazione di PHP e come inviare mail...

soalle
02-10-2002, 10:36
nell'help 'è scritto come inviare mail; sono andato a vedere il sito ufficiale c'è scritto di specificare la variabile SENDMAIL_PATH del file php.ini.

Il problema a questo punto è che non ho installato sendmail ma fetchmail (che dovrebbe fare cmq da server smtp) ma non so come farlo aprtire perché nel mandrake control center non appare...

Grazie ancora
Soalle

ilsensine
02-10-2002, 11:03
Da man fetchmail:

fetchmail is a mail-retrieval and forwarding utility; it fetches mail from remote mailservers and forwards it to your local (client) machine's delivery system.

Non mi sembra che possa essere usato per spedire mail...

soalle
02-10-2002, 12:12
Ok hai vinto tu... però ho installato sendmail e adesso funziona...
C'è una cosa che mi sfugge ampiamente... (ho scoperto l'acqua calda forse....:D).
Ho fatto la mia bella funzioncina che mi manda la mail ma il problema è che posso specificare qualsiasi mittente ???? :confused:
Non è un po' pericoloso.... oppure c'è qualcosa che mi sfugge....
Grazie ciao
Soalle

cionci
02-10-2002, 12:14
Sembra che non sia possibile spedire mail senza un programma compatibile a riga di comando con sendmail...

Come scritto nell'help, in teoria, un wrapper (cioè un script o un eseguibile che prende gli stessi parametri di sendmail) dovrebbe essere installato anche da altri sistemi si posta...anche perchè mi sembra che sendmail sia necessario anche per inviare le notifiche di errori nella mailbox locale...

cionci
02-10-2002, 12:18
Originariamente inviato da soalle
[B]Ho fatto la mia bella funzioncina che mi manda la mail ma il problema è che posso specificare qualsiasi mittente ???? :confused:
Caro mio sei un open relay :)
Devi in qualche modo bloccare gli accessi al server SMTP agli indirizzi IP diversi da 127.0.0.1...
Anche se sinceramente non conosco quali sono le impostazioni di default di sendmail...
Io l'ho sempre disattivato...ed ho usato server SMTP diversi (qmail)...

soalle
02-10-2002, 13:01
Originariamente inviato da cionci
[B]
Caro mio sei un open relay :)
Devi in qualche modo bloccare gli accessi al server SMTP agli indirizzi IP diversi da 127.0.0.1...
Anche se sinceramente non conosco quali sono le impostazioni di default di sendmail...
Io l'ho sempre disattivato...ed ho usato server SMTP diversi (qmail)...

Non capisco "open relay" intendi che ho un server smtp aperto sul mondo e qualsiasi persona lo può usare?

E se sì quali possono essere le conseguenze?

E poi c'entra qualcosa con il fatto che io posso spedire qualsiasi mail con l'indirizzo del mittente qualunque?

Soalle

cionci
02-10-2002, 13:04
Sì...open relay è quello che hai detto tu...

Il fatto che tu possa mandare con qualsiasi indirizzo sorgente non è un problema se fai in modo che solo l'indirizzo 127.0.0.1 possa accedere al server SMTP...

Mi sembra che ci sia qualche file di configurazione da modificare...

Riavvio, guardo e ti faccio sapere...

soalle
02-10-2002, 13:11
Ho trovato questo file di configurazione: /etc/mail/access:

# Check the /usr/share/doc/sendmail-8.12.1/README.cf file for a description
# of the format of this file. (search for access_db in that file)
# The /usr/share/doc/sendmail-8.12.1/README.cf is part of the sendmail-doc
# package.
#
# by default we allow relaying from localhost...
localhost.localdomain RELAY
localhost RELAY
127.0.0.1 RELAY

Ma non capisco minimamente una cosa:
Se io blocco l'accesso all'SMTP in modo che vi possa accedere solo da locale significa che non posso più mandare email con indirizzo mittente qualunque?

Soalle

Hell-VoyAgeR
02-10-2002, 14:26
allora....

e' "quasi" ovvio che si possa mettere un mittente qualsiasi, potresti voler spedire il messaggio come "[email protected]"

se vuoi usare un tool o meglio una classe un po' piu' versatile allora guardati http://www.phpguru.org/downloads/html.mime.mail/htmlMimeMail-2.5.1.tar.gz

L'ho usata in un paio di siti e vengono fuori dei risultati eccelsi (e soprattutto ti permette di usare l'smtp che vuoi anche senza installare sendmail)

cionci
02-10-2002, 15:30
Originariamente inviato da soalle
[B]Ho trovato questo file di configurazione: /etc/mail/access:

# Check the /usr/share/doc/sendmail-8.12.1/README.cf file for a description
# of the format of this file. (search for access_db in that file)
# The /usr/share/doc/sendmail-8.12.1/README.cf is part of the sendmail-doc
# package.
#
# by default we allow relaying from localhost...
localhost.localdomain RELAY
localhost RELAY
127.0.0.1 RELAY

Ma non capisco minimamente una cosa:
Se io blocco l'accesso all'SMTP in modo che vi possa accedere solo da locale significa che non posso più mandare email con indirizzo mittente qualunque?

No...significa che dall'esterno non si possono connettere a quella porta per inviare mail tramite il tuo server SMTP...
Il file è quello...e le impostazioni di default permettono il relay solo all'indirizzo di loopback e al localhost...quindi non sei un open relay...

soalle
03-10-2002, 11:21
Proverò la classe da te consigliata...
Ma non può essere un problema di sicurezza quello di poter mandare una email da qualsiasi indirizzo mittente... in teoria si possono combinare dei bei casini....

Ciao
Soalle

Hell-VoyAgeR
03-10-2002, 11:31
in teoria si possono fare casini... ma neanche tanti

gli headers di tracciamento ci sono sempre

ma dopotutto puoi mettere un mittente qualsiasi anche nel programma di posta che utilizzi, non vedo perche' non dovrebbe essere lo stesso per uno script su server

OCCHIO!

non usare questo sistema per una pagina di "invio mail" generica dove puoi inserire sia l'indirizzo mittente sia il destinatario...

altrimenti una blacklist per spam non te la toglierebbe nessuno

soalle
03-10-2002, 11:36
sono un ragazzo coscienzioso... :D
ma mi spieghi cosa significa una "blacklist per spam" (ho una vaga idea...)

Ciao
Soalle

Hell-VoyAgeR
03-10-2002, 11:41
Originariamente inviato da soalle
[B]sono un ragazzo coscienzioso... :D
ma mi spieghi cosa significa una "blacklist per spam" (ho una vaga idea...)

Ciao
Soalle

allora... esempio pratico...
tu fai una paginetta dalla quale si puo' inviare posta elettronica inserendo mittente e destinatario a piacere (e ovviamente anche il testo)

lo spammer di turno trova questa paginetta e, dopo essersi ripreso dal coccolone per una scoperta simile, inizia a spedire a destra e a manca email del tipo "allarga il tuo BENE" oppure "fai soldi con internet, collegati in MADAGASCAR"

qualcuno si rompe le scatole di ricevere tutta questa immondizia e segnala il messaggio a chi di dovere

nel messaggio c'e' l'ip del server dal quale partono, che viene inserito nelle liste degli open-relays, e quindi nella LISTA DEGLI INFAMI™.

Il risultato e' che nessun server di posta accettera' mai piu' mail da quel server.

Ti lascio immaginare le conseguenze!:D

cionci
03-10-2002, 11:46
Quando arrivano mail non richieste ci si può rivolgere ad alcuni siti che tengono una lista dei server SMTP che fanno spam...

Molti server SMTP si connettono a questi siti al momento della ricezione di una email e verificano che ils erver SMTP che l'ha inviata non sia nella blacklist...

Se è nella blacklista la mail viene rifiutata : http://www.mailabuse.org/

soalle
03-10-2002, 11:47
uhhmmmm abbastanza chiaro... :) ma....
mi sfugge chi è la persona/istituzione che si occupa di segnalare ai server di rifiutare email dal dato server.

Grazie ancora
Soalle

cionci
03-10-2002, 11:49
Lo puoi fare anche te...

Però devi dimostrare che il server è un open ralay...
Io l'ho fatto una volta...

Tra l'altro una volta ci hanno messo anche un mio server :)

Hell-VoyAgeR
03-10-2002, 12:09
Originariamente inviato da cionci
[B]Lo puoi fare anche te...

Però devi dimostrare che il server è un open ralay...
Io l'ho fatto una volta...

Tra l'altro una volta ci hanno messo anche un mio server :)

E' successo anche ad un mio collega... solo che il server in questione risiedeva su una HDSL tariffata a traffico, l'hanno usato per 3 giorni come openrelay... immagina la bolletta! :D

soalle
03-10-2002, 14:10
ti hanno messo un server tuo nella black list??? complimenti....
ma scusate... sono un po' profano.... ho due domande:

1. come fanno a comunicare a tutti i server (smtp o pop3 di arrivo???) mondiali di scartare le mail provenienti da un dato ip?

2. che cosa tutela un server smtp di libero, inwind, etc... da essere usato per mandare spamming?

Se mi spiegate bene come funziona tutta la faccenda ve ne sarei grato.... più che altro per conoscenza personale/ curiosità/ impara l'arte e mettila da parte :)

Hell-VoyAgeR
03-10-2002, 14:35
Originariamente inviato da soalle
[B]ti hanno messo un server tuo nella black list??? complimenti....
ma scusate... sono un po' profano.... ho due domande:

1. come fanno a comunicare a tutti i server (smtp o pop3 di arrivo???) mondiali di scartare le mail provenienti da un dato ip?

2. che cosa tutela un server smtp di libero, inwind, etc... da essere usato per mandare spamming?

Se mi spiegate bene come funziona tutta la faccenda ve ne sarei grato.... più che altro per conoscenza personale/ curiosità/ impara l'arte e mettila da parte :)

1. ci sono appositi servizi di liste dei server blacklistati

2. non li tutela nessuno, infatti libero e' molto sfruttato per fare mailing selvaggio, essendo un grosso provider diciamo che ha un trattamento "di favore" rispetto al piccolo server.

cionci
03-10-2002, 17:40
Originariamente inviato da Hell-VoyAgeR
[B]E' successo anche ad un mio collega... solo che il server in questione risiedeva su una HDSL tariffata a traffico, l'hanno usato per 3 giorni come openrelay... immagina la bolletta! :D
Mamma mia...

soalle : il capo aveva disabilitato per sbaglio l'opzione per la protezione dallo spam :)

soalle
03-10-2002, 20:44
disabilitato l'opzione per lo spamming significa che sei andato per un po' di tempo in open relay? O c'è qualche altra curiosa opzione proprio per lo spamming che non conosco...??

Ciaociao
Soalle

cionci
03-10-2002, 21:05
Originariamente inviato da soalle
[B]disabilitato l'opzione per lo spamming significa che sei andato per un po' di tempo in open relay? O c'è qualche altra curiosa opzione proprio per lo spamming che non conosco...??

Sì...sono andato per una settimana come open relay...

Ci sono diverse protezioni possibili per evitare che facciano spam con il tuo SMTP :

- controllo a livello di indirizzo IP...tipo quello del file che hai postato, ma non sempre è applicabile (ad esempio se il server deve essere usato anche da collegamenti dial-up)

- cotrollo dell'indirizzo sorgente...si permette di spedire mail solo usando nel from indirizzi email esistenti sul server POP3

- autentificazione SMTP...questo secondo me è il migliore... Prima di poter inviare bisogna autentificarsi con uno username e password (solitamente gli stessi del server POP3)

- autorizzazione SMTP solo dopo l'autentificazione POP3... In pratica ogni volta che un utente si autentifica si mette il suo IP in una lista di utenti autorizzati ad inviare posta con il server SMTP... Fissato un timeout (ad esempio 2 minuti) si toglie l'ip da questa lista...

- inserire dei ritardi incrementali per ogni indirizzo di destinazione, CC e BCC... Ad esempio fino a 10 destinatari non inserisco ritardi... Da 11 in poi inserisco 2 secondo per ogni indirizzo successivo... Così diventa impossibile fare spamming...

Ovviamente si possono utilizzare anche combinazioni di questi metodi...

soalle
04-10-2002, 10:52
Grazie adesso è molto chiaro...

Ciaociao Soalle

soalle
04-10-2002, 12:01
scusa... altra domandina quasi correlata. Io uso una connessione X per connettermi a Internet.

Quando mando email tramite libero (smtp: mail.libero.it) usando la connessione X non me le accetta (tranne se hanno come destinatario un email di libero).
Allora quando devo mandare emal mi devo connettere per forze tramite la connessione di libero...

Ho provato a specificare come smtp mail.inwind.it e la prima mail me l'ha mandata le successive no...

Come faccio a mandare email con libero utilizzando la connessione X?

Grazie ancora
Soalle

Hell-VoyAgeR
04-10-2002, 12:09
Originariamente inviato da soalle
[B]scusa... altra domandina quasi correlata. Io uso una connessione X per connettermi a Internet.

Quando mando email tramite libero (smtp: mail.libero.it) usando la connessione X non me le accetta (tranne se hanno come destinatario un email di libero).
Allora quando devo mandare emal mi devo connettere per forze tramite la connessione di libero...

Ho provato a specificare come smtp mail.inwind.it e la prima mail me l'ha mandata le successive no...

Come faccio a mandare email con libero utilizzando la connessione X?

Grazie ancora
Soalle

non mi risulta che libero usi l'autenticazione smtp, qundi l'unico modo per usare libero come smtp per indirizzi non @libero.it e' usare la connessione di libero

altrimenti devi usare il server smtp del provider X che ti fornisce connettivita'

P.S. hai un pvt

cionci
04-10-2002, 12:12
Solitamente, dico solitamente perchè non è sempre così, viene utilizzato il primo tipo di protezione (quindi il server SMTP ti fa inviare email solo sei hai un IP appartenente al range di IP del provider del server stesso)...
Cioè se sei connesso con un provider X puoi inviare mail solo tramite il server SMTP del provider X...anche avendo un FROM non appartenente a quel provider...

Quelli che ho verificato io sono tin.it, clubnet, inwind e activenetwork...e tutti funzionano in questo modo...

soalle
04-10-2002, 12:20
uhhmmmm e qualcuno non è che riuscirebbe a dirmi un smtp dal quale riesco mandare posta senza connettermi con libero???

In realtà preferirei non usare l'smtp della connessione X.... ;)

Grazie
Soalle

PS: forse sto chiedendo oro....:D
PPS: Hell-VoyAgeR hai risposta a PVT

Hell-VoyAgeR
04-10-2002, 12:28
Originariamente inviato da soalle
[B]uhhmmmm e qualcuno non è che riuscirebbe a dirmi un smtp dal quale riesco mandare posta senza connettermi con libero???

In realtà preferirei non usare l'smtp della connessione X.... ;)

Grazie
Soalle

PS: forse sto chiedendo oro....:D
PPS: Hell-VoyAgeR hai risposta a PVT

non penso esistano ancora open relays (se non per sbaglio), una soluzione sarebbe cercare un relay che supporti l'autenticazione...

visto pvt

cionci
04-10-2002, 12:32
Originariamente inviato da soalle
[B]uhhmmmm e qualcuno non è che riuscirebbe a dirmi un smtp dal quale riesco mandare posta senza connettermi con libero???
Hai un PVT...