non è complicato, ma bisogna prima capire come funziona l'invio della posta.
Facciamo un passo indietro e dimenticati del sito per un attimo, quando tu dal tuo PC di casa apri outlook e invii un messaggio sei propenso a credere che sia il tuo computer che invia quel messaggio, in realtà non è così, non potrebbe farlo perchè non è un mailserver, per cui quello che fa è semplicemente collegarsi al mailserver del tuo ISP (l'operatore telefonico che ti fornisce l'ADSL) il quale verifica se sei un loro cliente e se è così invia per te il messaggio.
Se ti è capitato di configurare un account su Outlook avari impostato un server SMTP .... ecco quello è l'indirizzo del mailserver al quale il tuo PC chiede di inviare per conto tuo il messaggio.
Il tuo operatore telefonico ha 2 modi per verificare se sei un loro cliente, alcuni controllano semplicemente se la linea da cui ti collegi è 'di loro proprieta' (passatemi il termine esemplificativo) altri ti chiedono di autenticarti con user e password, i quali dovranno essere impostati appunto nella configurazione dell'account di Outlook.
Ora possiamo ritornare al sito, PHP ha alcune funzioni che ti consentono di 'chiamare' un qualsiasi mailserver e inviare da li, per cui tu usando le credenziali che ti ha dato il tuo fornitore di ADSL (se te le ha date) potresti inviare email dal tuo sito come se le stessi inviando dal tuo PC di casa.
Per quanto riguarda IMAP il discorso è più o meno identico con l'unica differrenza che anzicè utilizzare il protocollo SMTP usi il protocollo IMAP per comunicare con il mailserver.
Quindi il concetto è che nel caso il server su cui si trova il tuo sito non sia in grado di inviare posta puoi anche fare in modo che i tuoi script si colleghino ad un mailserver remoto e facciano l'invio da quest'ultimo.
Detto questo però io ti consiglio prima di fare qualsiasi cosa di contattare l'assistenza del server per chiedere se effettivamente nel server sia installato un MTA e in caso negativo se si possa installare spiegandole che hai uno script con la funzione mail() di PHP che sembra non effettuare l'invio, può anche essere che loro abbiano procedure particolari per l'invio delle mail dai siti; poi naturalmente se hai problemi a 'tradurre' la risposta puoi postarla qua e io o qualcun'altro ti daremo una mano.
![]()
![]()