• User Attivo

    PHPMailer newsletter con più allegati

    Ciao a tutti.
    Ho un problema che mi sta facendo scervellare da qualche giorno e solo voi potete risolvere.

    In pratica io ho una tabella mysql così formata:

    | ID | USER_ID | CATEGORIA |

    Per cui al variare di "categoria" devo inviare un allegato diverso.
    Il problema sta nel fatto che un utente può scegliere di ricevere newsletter per più categorie e quindi più di un allegato.
    Come faccio a fare in modo di non affogarlo nelle email ma inviargliene una sola contenente più di un allegato?

    Infatti, l'unica soluzione che mi viene in mente è di fare una query che mi trovi tutte le categorie scelte dall'utente e inviare una email diversa per ognuno di essi.
    Ma facendo ciò perderei l'utilità della classe PHPMailer o sbaglio?

    Spero di essermi spiegato, grazie mille in anticipo!!


  • User Attivo

    Ripeti il metodo AddAttachment(...); tante volte quante sono le categore associate all'utente.

    Ciao!*
    *


  • User Attivo

    Ok, grazie.. è già una cosa in più da sapere!
    Ora, però ho un problemino... come faccio ad associare un allegato ad un utente?

    Per farti un esempio: io posso avere l'allegato di nome A, però tu hai l'allegato di nome B ed anche quello di nome C.

    ci vorrebbe una specie di funzione che dicesse: per tizio allega questo file, per caio allega questi due file e per sempronio ancora ne alleghi uno ancora diverso


  • User Attivo

    Quindi a te interessa Utenti con categorie uguali --> Diversi allegati?
    Potresti inserire un campo o una tabella che tenga in memoria le associazioni tra utente e allegato.


  • User Attivo

    Allora, a me interessa:
    -Una categoria = un allegato.
    -Un utente ha/può avere scelto più categorie

    Quello che però faccio difficoltà a spiegare è il fatto che non vorrei inviare ad uno stesso utente 2 email per il semplice fatto che ha scelto due categorie. Vorrei che a quell'utente fosse inviata una sola email contenente gli allegati delle due categorie.

    La tebella che mi consigli di fare penso di averla già creata, se non ho capito male, infatti la coppia user_id/categoria, rappresenta proprio la categoria scelta dall'utente.
    Esempio:

    
    -----------------------------
    | ID | USER_ID | CATEGORIA |
    -----------------------------
    | 1   | 10         | comunicati  |
    | 2   | 10         | articoli       |
    | 3    | 5           | comunicati  |
    -----------------------------
    
    

    Come vedi l'user numero 10 ha scelto di ricevere le news sia di "comunicati" che di "articoli". L'user 5 invece ha scelto solo "comunicati".

    Scusami se sto facendo macello, grazie per la pazienza 😉


  • User Attivo

    La query adatta può essere del tipo:

    SELECT categoria FROM tabella WHERE user_id = '10';

    Cosi ricavi "comunicati" e "articoli".
    Ora con un script del genere puoi mandare la mail:

    [php]
    $mail = new PHPMailer();

    //...

    $risultato = mysql_query("SELECT categoria FROM tabella WHERE user_id = '10'");

    while($riga = mysql_fetch_array($risultato))
    {
    //Soluzione 1
    if($riga["categoria"] == "comunicati")
    $path = "download/file_comunicati_09.pdf";

    //Soluzione 2
    $path = $riga["categoria"] . ".pdf";

    $mail->AddAttachment($path);
    }

    //...

    $mail->Send();
    [/php]

    Credo sia questo quello che ti serve.


  • User Attivo

    Ok, penso di aver capito come devo procedere.. stasera butto giu un pò di codice e poi ti faccio sapere!

    Grazie!


  • User Attivo

    Ok. prego! 😉