[PHP] Invio mail automatico dopo compilazione form - db

  • Creatore Discussione Creatore Discussione Borghese
  • Data di inizio Data di inizio
poi dovresti controllare bene il passaggio delle variabili, ricevo questa mail dall'ultimo script postato

upload_2019-2-8_8-25-50.png
 
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è!
 
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
 
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   = "[email protected]";      // 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);
 
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   = "[email protected]";      // 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" ?
 

Discussioni simili