Visualizzazione risultati 1 fino 16 di 16

Discussione: Problemi invio mail a vari provider di posta

  1. #1
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito Problemi invio mail a vari provider di posta

    Salve,

    Ho creato, per prova, questo semplice script php:

    Codice PHP:
    <?php
    include_once("classes.php");
    $mail = new MailSender("sevenjeak@gmail.com", "prova", "prova");

    if (
    $mail->send()) {
    echo
    "OK";
    }else {
    echo
    "NO";
    }
    ?>
    Nel file classes.php c'è, oltre ad altre classi, la classe MailSender, da me creata:

    Codice PHP:
    class MailSender {
    private
    $headers = null;
    private
    $body = null;
    private
    $to = null;
    private
    $subject = null;

    public function
    __construct($to, $subject, $message) {
    $this->to = $to;
    $this->subject = $subject;

    $this->headers = "From: Sevenjeak <sevenjeake@altervista.org>\r\n";
    $this->headers .= "Content-type: text/html; charset=iso-8859-1";
    $this->headers .= "X-Mailer: PHP/" . phpversion();

    $this->body = "<html>
    <head>
    <style>
    header {
    height:45px;
    background:#f7f7f7;
    border-bottom:solid 1px #bdbdbd;
    }

    header div {
    float:left;
    background:url('https://sevenjeak.altervista.org/images/logo.png') no-repeat 10px 0px;
    height:80px;
    padding-left:90px;
    }
    </style>
    </head>
    <body>
    <header><div></div></header>
    <main>
    <p />&nbsp;<p />
    $message
    </main>
    </body>
    </html>"
    ;
    }

    public function
    send() {
    return
    mail($this->to, $this->subject, $this->body, $this->headers);
    }
    }
    Purtroppo, provando lo script, mi stampa ok, ma la mail su gmail non mi arriva, come mai?

    Oltre ad inviarmi la mail su gmail ho provato ad inviarla su una mail outlook.it, libero.it, hotmail.com, ma mi arriva senza stile html.

    Come potrei risolvere questi due problemi?

    P.S.:Se lo invio invece al mio alias ( sevenjeak@altervista.org ), collegato al mio accound gmail, la mail mi arriva correttamente.

    Sevenjeak
    Software developer and much more

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,148

    Predefinito

    Citazione Originalmente inviato da sevenjeak Visualizza messaggio
    ma la mail su gmail non mi arriva, come mai?
    Prova a correggere "sevenjeake" con "sevenjeak" qui:

    Citazione Originalmente inviato da sevenjeak Visualizza messaggio
    $this->headers = "From: Sevenjeak <sevenjeake@altervista.org>\r\n";

    Citazione Originalmente inviato da sevenjeak Visualizza messaggio
    Oltre ad inviarmi la mail su gmail ho provato ad inviarla su una mail outlook.it, libero.it, hotmail.com, ma mi arriva senza stile html.
    Prova utilizzando il separatore, come descritto qui.

    Ciao!

  3. #3
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,259

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Prova utilizzando il separatore, come descritto qui.
    O direttamente una libreria come PHPMailer, direi seguendo questo esempio.
    Ultima modifica di dreadnaut : 31-07-2022 alle ore 22.17.10

  4. #4
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Citazione Originalmente inviato da alemoppo
    Prova a correggere "sevenjeake" con "sevenjeak" qui:
    Mannaggia, ultimamente non so perché, ma faccio sempre questi errori di battitura, comunque, correggendolo il risultato non cambia

    Citazione Originalmente inviato da alemoppo
    Prova utilizzando il separatore, come descritto qui.
    !
    Scusa, ma a quale separatori ti riferisci?

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    O direttamente una libreria come PHPMailer, direi seguendo questo esempio.
    Ho provato con PhpMailer, ho provato ad inviare la mail a vari provider di posta, i provider di posta outlook.it, libero.it, hotmail.com mi ricevono correttamente la mail in formato html, mentre gmail ancora non mi riceve la mail, come può essere?

    P.S.: Ho notato in oltre, che mi e sparita la scritta che altervista aggiunge in fondo alle mail ( non so se mi spiego )

    Sevenjeak
    Software developer and much more

  5. #5
    frasidipace non è connesso AlterGuru
    Data registrazione
    07-05-2010
    Messaggi
    2,356

    Predefinito

    [ ⚠ Incorretto, vedi #7 ]

    Salve,
    gmail non processa le mail inviate mediante funzione mail(), poiché tale funzione non ha un sistema antispam.
    In tal caso la mail viene bloccata dal provider e non finisce neanche nella posta indesiderata.
    L'unico modo è utilizzare l'SMTP, ma mi sembra che da Altervista non sia possibile, oppure passare attraverso Mailchimp.

    Saluti
    Ultima modifica di dreadnaut : 01-08-2022 alle ore 18.34.36

  6. #6
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Ok, grazie per le risposte, in ogni caso, ho scoperto che il problema sta nel codice html che voglio inviare, ho provato ad invia con PhoMailer un semplice div colorate e me lo invia correttamente, mentre, inviando il codice html, presente nella classe che ho postato nel mio primo messaggio la mail mi viene inviata senza stile html.

    In questo momento non sono al pc, proveró solo ad inserire nel messaggio il contenuto del <body>

    In ogni caso, grazie delle risposte

  7. #7
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,259

    Predefinito

    Citazione Originalmente inviato da frasidipace Visualizza messaggio
    Salve,
    gmail non processa le mail inviate mediante funzione mail(), poiché tale funzione non ha un sistema antispam.
    In tal caso la mail viene bloccata dal provider e non finisce neanche nella posta indesiderata.
    L'unico modo è utilizzare l'SMTP, ma mi sembra che da Altervista non sia possibile, oppure passare attraverso Mailchimp.
    Questo è incorretto, a diversi livelli:

    1. I due sistemi antispam principali sono SPF, che lavora a livello DNS, e DKIM, una firma digitale contenuta in un header dell'email. Il primo è separato dal contenuto dell'email, ed il secondo può essere implementato passando l'header come parametro alla funzione mail().

    2. Assai di rado un'email viene rifiutata dal provider, e questo è di solito per problemi di configurazione. La maggior parte delle email senza SPF o DKIM arrivano, ma finiscono nella cartella dello spam.

    3. Utilizzare un SMTP esterno non è necessario, e garantisce di finire nello spam se il mittente è un indirizzo @altervista.org: l'SMTP non sarà fra i server menzionati nel record SPF di AlterVista

    Controprova, ho appena ricevuto senza problemi un'email spedita con questo codice:
    Codice PHP:
    mail(
    IL_MIO_INDIRIZZO_SU_GMAIL,
    "This is a test email",
    "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum",
    [
    "From" => "dreadnaut <dreadnaut@altervista.org>",
    ],
    );

    Per Sevenjeak invece: nota che i client di posta accettano solo un numero molto piccolo di attributi CSS, ed in molti casi questi devono essere inseriti negli attributi style="..." dei tag HTML.

    Vedi anche: https://www.caniemail.com/
    Ultima modifica di dreadnaut : 01-08-2022 alle ore 18.29.07

  8. #8
    frasidipace non è connesso AlterGuru
    Data registrazione
    07-05-2010
    Messaggi
    2,356

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    Questo è incorretto, a diversi livelli:

    1. I due sistemi antispam principali sono SPF, che lavora a livello DNS, e DKIM, una firma digitale contenuta in un header dell'email. Il primo è separato dal contenuto dell'email, ed il secondo può essere implementato passando l'header come parametro alla funzione mail().
    Sarà incorretto ciò che scrivo, ma la funzione mail() contiene solo l'indirizzo mail del destinatario, il testo e l'indirizzo mail del mittente. Non vi è alcun antispam, né sistema di autenticazione. Ho fatto anch'io la controprova e le mail inviate con tale funzione vengono contrassegnate come spam.


    2. Assai di rado un'email viene rifiutata dal provider, e questo è di solito per problemi di configurazione. La maggior parte delle email senza SPF o DKIM arrivano, ma finiscono nella cartella dello spam.
    E' lo stesso supporto Google che indica che una mail può essere rifiutata, anziché essere contrassegnati come spam.


    3. Utilizzare un SMTP esterno non è necessario, e garantisce di finire nello spam se il mittente è un indirizzo @altervista.org: l'SMTP non sarà fra i server menzionati nel record SPF di AlterVista
    Non sarà necessario, ma è consigliato qualora si voglia essere certi di raggiungere sempre tutti gli utenti con le mail che partono dal proprio sito web, soprattutto se il sito è stato creato con un CMS come Wordpress, poiché SMTP utilizza un sistema di autenticazione, come viene indicato in questo articolo.

    Anche su questo forum sono stati aperti numerosi post di utenti che hanno lamentato la mancata ricezione di link di conferma sulla propria casella gmail; problema risolto solo a seguito di modifica della mail con quella di altro provider.

    Ovviamente ciascuno gestisce il proprio sito web come ritiene più opportuno.

    Saluti
    Ultima modifica di frasidipace : 01-08-2022 alle ore 23.55.20

  9. #9
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,259

    Predefinito

    Citazione Originalmente inviato da frasidipace Visualizza messaggio
    Sarà incorretto ciò che scrivo, ma la funzione mail() contiene solo l'indirizzo mail del destinatario, il testo e l'indirizzo mail del mittente. Non vi è alcun antispam, né sistema di autenticazione. Ho fatto anch'io la controprova e le mail inviate con tale funzione vengono contrassegnate come spam.
    DKIM è un header, e può essere passato nel quarto parametro della funzione mail().
    Codice PHP:
    mail(
    string $to,
    string $subject,
    string $message,
    array|
    string $additional_headers = [],
    string $additional_params = ""
    ): bool
    È importante anche inviare un header From, con un dominio mittente valido (in termini di SPF) per il server da cui la mail viene inviata.

    Usare un SMTP esterno non permette automaticamente di usare DKIM, perché la chiave pubblica della firma va comunque aggiunta ai record DNS del dominio mittente. Stessa cosa per SPF, anch'esso configurato via DNS.

    Citazione Originalmente inviato da frasidipace Visualizza messaggio
    E' lo stesso supporto Google che indica che una mail può essere rifiutata, anziché essere contrassegnati come spam.
    La pagina linkata non menziona il motivo per cui un messaggio viene rifiutato, e non lo associa alla mancanza di informazioni anti-spam. Come ho menzionato, il rifiuto completo è di solito dovuto a misconfigurazione; un'altra causa può essere una lista di esclusione — cosa connessa allo spam, ma non a SPF o DKIM.


    Comunque non voglio negare che un SMTP esterno o un servizio di mail delivery via API siano utili. Io stesso uso l'SMTP associato ad un dominio per un progetto, SendGrid* per un altro, e mail() in altre situazioni. È importante però sapere quali sono i limiti di ciascun metodo, possibilmente con una base tecnica corretta, invece di buttare li un "L'unico modo è..."

    (*) SendGrid è tipo MailChimp, se vuoi, ma ha un piano gratuito migliore per quello che mi serve.
    Ultima modifica di dreadnaut : 02-08-2022 alle ore 01.02.56

  10. #10
    frasidipace non è connesso AlterGuru
    Data registrazione
    07-05-2010
    Messaggi
    2,356

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio


    La pagina linkata non menziona il motivo per cui un messaggio viene rifiutato, e non lo associa alla mancanza di informazioni anti-spam. Come ho menzionato, il rifiuto completo è di solito dovuto a misconfigurazione; un'altra causa può essere una lista di esclusione — cosa connessa allo spam, ma non a SPF o DKIM.


    Comunque non voglio negare che un SMTP esterno o un servizio di mail delivery via API siano utili. Io stesso uso l'SMTP associato ad un dominio per un progetto, SendGrid* per un altro, e mail() in altre situazioni. È importante però sapere quali sono i limiti di ciascun metodo, possibilmente con una base tecnica corretta, invece di buttare li un "L'unico modo è..."
    La pagina linkata se letta per intero, compreso le altre pagine in essa linkate, riporta i motivi dei messaggi rifiutati e suggerisce anche le soluzioni, come l'aggiunta di record TXT, cosa non possibile se non si ha la possibilità di accedere alla gestione dei DNS, ovvero il ricorrere a servizi alternativi (così come suggerisce anche il secondo articolo linkato) per i moduli di contatto dei siti web, in modo da non trovarsi con problemi come questo, rimasto a quanto pare senza soluzione, oppure come quest'altro, risolto solo a seguito di modifica della mail.
    Ad ogni modo non prolungherei più di tanto questo topic, nella consapevolezza di non avere una "base tecnica corretta", cosa che mi può spingere a "buttare lì" espressioni tanto per..., oppure incorrette "a diversi livelli".
    Ti ringrazio per avermelo fatto notare, nonché per aver messo a fattor comune le tue conoscenze con le quali non era mia intenzione aprire un confronto.

    Ciao

  11. #11
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Premettendo che non ho capito ciò che avete detto, tutte quelle sigre che avete accennato non ne conosco una ( solo la sigla DNS e SMTP conosco :-( )

    Mi sono appena ricordato che qui su altervista ho un'altro account il quale mi invia correttamente le email a gmail, infatti questo codice:
    Codice PHP:
    mail("sevenjeak@gmail.com", "prova", "Prova");
    Non mi funziona se le invio da https://sevenjeak.altervista.org, mentre, se le invio da l'altro mio sito, sempre su altervista, me la invia e gmail mi riceve correttamente la mail, dovrei contattare il supporto di altervista?
    Ultima modifica di sevenjeak : 04-08-2022 alle ore 12.04.38

    Sevenjeak
    Software developer and much more

  12. #12
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,148

    Predefinito

    Citazione Originalmente inviato da sevenjeak Visualizza messaggio
    dovrei contattare il supporto di altervista?
    Il supporto è qui.
    Hai modo di indicare data e ora in cui hai provato, che faccio controllare i log? (se non ricordi, prova adesso, poi scrivimi data e ora).

    Ciao!

  13. #13
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Ok, ho rieseguito lo script oggi, 5/8/22 alle 8:32

    Sevenjeak
    Software developer and much more

  14. #14
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,148

    Predefinito

    Gmail ha risposto con "Service unavailable",
    questo può derivare dal fatto che sono state inviate molte email in passato dal sito verso il tuo indirizzo email, quindi gmail sta temporaneamente scartando le email inviate.

    Ciao!

  15. #15
    midianrealms non è connesso Neofita
    Data registrazione
    22-08-2005
    Messaggi
    20

    Predefinito

    Anche io mi trovo nella stessa situazione. Non c'è nulla da poter fare?

  16. #16
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,148

    Predefinito

    Puoi indicare più dettagli così da poter controllare?
    Hai inviato email dall'account "midianrealms"? In che giorno/ora? Verso chi?

    Ciao!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •