[PHP] Invio mail automatico dopo compilazione form - db

Discussione in 'PHP' iniziata da Borghese, 3 Febbraio 2019.

  1. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    2.431
    Mi Piace Ricevuti:
    121
    Punteggio:
    63
    Occupazione:
    free lance
    Località:
    Lombardia
    poi dovresti controllare bene il passaggio delle variabili, ricevo questa mail dall'ultimo script postato

    upload_2019-2-8_8-25-50.png
     
  2. Borghese

    Borghese Nuovo Utente

    Registrato:
    3 Febbraio 2019
    Messaggi:
    14
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Allora, ci sono riuscito !!
    Ho sistemato le variabili, grazie al tuo consiglio, e creato altre due array per altri due campi, il risultato è quasi perfetto :

    1.JPG
    Dico quasi perché mi rimane da capire come impostare l'indirizzo del destinatario nello script di phpmailer (attualmente è nella pagina html quindi visibile a chi ispeziona il codice, ancora tanto è in locale, ma quando sarà online è un problema) e poi impostare l'invio a più indirizzi (ho provando separando i destinatari da "," o ";" ma non parte la mail. Ancora meglio sarebbe riuscire a fargli pescare gli indirizzi mail degli utenti registrati, direttamente dal DB
    Sto leggendo in giro per il web, e facendo prove, ma non mi esce...e non capisco il perchè!
     
  3. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    2.431
    Mi Piace Ricevuti:
    121
    Punteggio:
    63
    Occupazione:
    free lance
    Località:
    Lombardia
    l'indirizzo degli utenti destinatari, puoi memorizzarli nello script di configurazione del servizio mail,
    per intenderci, lo stesso script dove sono dichiarati $eM_Host, $eM_Port ecc.
    oppure se ti é comodo, puoi creare una tabella nel db e usarla per compilare i destinatari della mail,

    potresti memorizzare gli indirizzi classificandoli per categoria in modo da poter estrarre gli indirizzi in funzione del tipo di "incident" e quindi destinare le mail a gruppi diversi

    per aggiungere più destinatari puoi richiamare pi§ volte
    $mail->AddAddress($indirizzo1);
    $mail->AddAddress($indirizzo2);

    ma puoi anche usare più volte
    $mail->AddCC();
    per le copie per conoscenza

    e per ultimo
    $mail->AddBCC();
    per le copie per conoscenza nascoste
     
  4. Borghese

    Borghese Nuovo Utente

    Registrato:
    3 Febbraio 2019
    Messaggi:
    14
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Fatto, ma non funziona....sto sbagliando qualcosa ma non capisco cosa :
    Senza aggiungere quei campo invece funziona tutto correttamente :(

    PHP:
     $to               $_POST['destinatario'];     
        
    $from             $_POST['mittente'];
        
    $INCIDENT         $_POST['Ticket'];
        
    $AREA             $_POST['Area'];
        
    $SERVIZIO         $_POST['Servizio'];
        
    $INDICEIMPATTO    $_POST['Impatto'];
        
    $INDICEURGENZA    $_POST['Urgenza'];
        
    $indirizzo1       $_POST['indirizzo1'];

        
    $mail = new PHPMailer(false);
        
        
    $mail->IsSMTP();
        
        try {
          
    $mail->Host       "smtp.gmail.com";                    // DA PERSONALIZZARE
          
    $mail->SMTPDebug  0;                     
          
    $mail->SMTPAuth   true;
          
    $mail->SMTPSecure "tls";
          
    $mail->Port       587;                   
          
    $mail->Username   "xxxxxxxx@gmail.com";      // DA PERSONALIZZARE
          
    $mail->Password   "xxxxxxxxx";                            // DA PERSONALIZZARE
          
    $mail->AddReplyTo($from$from);
          
    $mail->AddAddress($to);
          
    $mail->AddAddress($indirizzo1);
          
    $mail->SetFrom($from$from);
          
    $mail->AddReplyTo($from$from);
     
  5. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    2.431
    Mi Piace Ricevuti:
    121
    Punteggio:
    63
    Occupazione:
    free lance
    Località:
    Lombardia
    Ultima modifica: 11 Febbraio 2019
  6. Borghese

    Borghese Nuovo Utente

    Registrato:
    3 Febbraio 2019
    Messaggi:
    14
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Allora, ci siamo !!!

    Con questo script :

    PHP:
    try {
          
    $mail->Host       "smtp.gmail.com";                    // DA PERSONALIZZARE
          
    $mail->SMTPDebug  0;                     
          
    $mail->SMTPAuth   true;
          
    $mail->SMTPSecure "tls";
          
    $mail->Port       587;                   
          
    $mail->Username   "aaaa@gmail.com";      // DA PERSONALIZZARE
          
    $mail->Password   "qqqqqqq";                            // DA PERSONALIZZARE
          
    $mail->AddReplyTo($from$from);
          
    $mail->AddAddress('xxxx@xxx');
          
    $mail->AddAddress('yyyy@yyyyy');
          
    $mail->SetFrom($from$from);
          
    $mail->AddReplyTo($from$from);
    Sono riuscito a togliere gli indirizzi dei destinatari dalla pagina html, e lasciarli visibili sono nella pagina php che richiama lo script.
    Compilando e salvando il form, entrambi i destinatari impostati ricevono correttamente la mail.
    non chiedermi perchè, ma usando come protocollo "SSL" e come porta la "465" la mail non parte! con TLS e la 587 nessun problema.

    Ora, siccome i destinatari di questa mail in realtà sarebbero diversi, (una 20ina) mi piacerebbe, anzichè aggiungere 20 "AddAddress" che li pescasse dalla tabella sql.
    Nel DB ho una tabella, che si chiama "login" che al suo interno contiene diversi campi : Nome, Cognome, Foto, Telefono etc etc...e il campo "MAIL"

    Come posso fare, nell'ADDADDRESS, a dirgli : Leggi il destinatario dalla colonna "Mail" nella tabella "Login" ?
     
Sto caricando...

Condividi questa Pagina