l'invio della posta elettronica ed il servizio offerto da vari provider

Discussione in 'Posta Elettronica' iniziata da marino51, 9 Luglio 2014.

  1. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    2.431
    Mi Piace Ricevuti:
    121
    Punteggio:
    63
    Occupazione:
    free lance
    Località:
    Lombardia
    ciao,

    frequentando mrWebmaster da un po' di tempo, ho notato che molti post, trattano problemi che sorgono con l'invio delle email
    vorrei quindi trattare un argomento che molto raramente è presente nelle guide di aiuto e supporto

    l'invio della posta elettronica ed il servizio offerto da vari provider,

    il provider può avere identità diverse,
    può essere un proprio pc o un proprio server (azienda), su cui è stato installato il software di gestione della posta
    ma può essere anche un servizio "intrinseco", cioè che non vedo, perchè offerto ad esempio in un pacchetto di hosting
    oppure può essere un fornitore specifico, vedi gmail, web.de, alice, tiscali e tutti quelli che vi vengono in mente

    anche l'utente che invia la posta può avere identità diverse,
    la persona che utilizza un client di posta è il classico utente
    ma anche lo script che manda la "conferma di registrazione", o più in generale, che invia una mail è l'utente della posta
    in qualunque forma venga inviata una mail, chi la invia è "l'utente"


    esiste quindi un rapporto diretto tra il servizio della posta elettronica e ciascun utente

    come molti altri servizi, anche la posta richiede l'autenticazione dell'utente,
    autenticazione che può avvenire con una connessione al servizio non protetta o protetta da crittografia

    chi sceglie se usare la connessione protetta o non ?
    il provider del servizio, anche in funzione di qualche "feature" che vogliamo utilizzare


    proviamo a fare il parallelo con un servizio che tutti conoscono,

    accedo al database con un driver (mysql, mssql, oracle ... )
    accedo al servizio di posta senza nessun driver, il servizio è codificato internazionalmente

    definisco l'host su cui è presente il servizio che mi permette l'accesso al database
    lo stesso devo fare per accedere al servizio di posta elettronica (servizio SMPT)

    definisco il database a cui devo accedere
    per la posta definisco la porta di accesso che mi identifica se connessione crittografata o non

    definisco le credenziali di accesso al database, userID e password
    lo stesso devo fare per il servizio di posta

    per la connessione al database ho detto tutto,
    per la connessione crittografata alla posta devo indicare quale sicurezza viene usata


    quando un servzio di posta elettronica funziona senza autenticazione, questa è sicuramente "intrinseca"
    vedi quanto detto sopra


    ecco un esempio dei parametri da utilizzare per la connessione al servizio di posta elettronica

    PHP:
    $eM_Host     "smtp.example.com";    // SMTP servizio mail
    $eM_Port     587;            // 25, 465, 587
    $eM_Auth     true;            // false (25) true (465, 587)
    $eM_Secure   "tls";            // "" (25) "ssl" (465) "tls" (587)
    $eM_username "name@example.com";    // utente conosciuto dal servizio mail usato
    $eM_password "password";        // password dell'utente

    siamo tornati all'invio della mail in modo specifico con php,
    posso utilizzare la funzione mail() disponibile nativamente nel linguaggio
    oppure sfruttare una "classe" resa disponibile da chi l'ha sviluppata, che aiuta nel compito

    nel file allegato a questo post, è possibile trovare,
    1) un file di "configurazione", che contiene i parametri di alcuni servizi sicuramente provati
    2) uno script per provare connessioni "semplici" usando la funzione mail()
    3) uno script per provare connessioni usando la classe PHPMailer (con anche invio di allegati)

    lo scopo è provare il sevizio che si vuole utilizzare, quando si incontrano difficoltà
    spesso ho visto creare piccoli script di test in alternativa al principale, anch'essi non funzionanti,
    solo perchè non si conosce o non si valuta con attenzione l'autenticazione

    la "poca" esperienza, mi dice che la funzione mail() nativa può essere usata con profitto quando la mail è semplice
    viceversa con allegati o funzionalità "spinte" meglio usare PHPMailer come suggerito in molti post

    PHPMailer offre (non documentata) la verifica delle operazioni di invio con,
    PHP:
    $mail->SMTPDebug 4;  // attiva log dell'invio, ELIMINARE quando si mette in "produzione"

    gli script dovrebbero essere facili da comprendere, in ogni caso, questo post è aperto a tutti i contributi
    di chi volesse integrare e/o meglio chiarire le mie "poche idee e ben confuse"
    ciao
    Marino
     

    Files Allegati:

Sto caricando...

Condividi questa Pagina