Jeg stillede et spørgsmål (eksperten nr. 40553) men fik ikke helt det svar jeg ønskede.
Jeg har lavet en mailingliste (nyhedsbrev) hvor jeg selecter modtagerne fra min brugerdatabase således:
SQL = \"SELECT distinct email FROM temp_email\" set maillist = Base.Execute(SQL)
Nu er der nogle brugere der gerne vil frameldes, men listen bliver genereret (i tabellen \"temp_email\") hver gang jeg sender til den kan jeg ikke bare framelde folk.
Jeg har tænkt på at lave en no_news tabel hvori jeg indsætter alle de e-mail adresser som ikke fremover vil modtage nyhedsbreve.
Er der nogle der kan sige mig om flg. vil virke:
\' BEGIN
SQL = \"SELECT distinct email FROM no_news\" set nonewsRS = Base.Execute(SQL)
do while not nonewsRS.eof
SQL = \"Delete email from temp_email where email = nonewsRS(\"email\") \"
loop nonewsRS.movenext
SQL = \"SELECT distinct email FROM temp_email\" set maillist = Base.Execute(SQL)
..... (her er en masse jmail kode som er irrelevant for dette spørgsmål) .....
Hvad er det egentlig du vil ??? vil du framelde nogle på din mail liste, men beholde dem i din database eller hvad vil du ??
Hvis du vil framelde dem men beholde dem... kunne du måske lave en attribut i din tabel du kalder aktiv, hvor du sætter modtagerne til at være aktiv = J hvis personen skal modtage mailes eller aktiv = N hvis der ikke skal sendes mails..
Hvis en mail modtager bare skal slettes så lav dog en delete på brugeren...
Jeg har 4 forskellige \"bruger\" tabeller, lad os kalde dem a, b, c, d.
I hver tabel er et felt til brugerens email adresse.
Nogle gange sender jeg nyhedsbrev ud til f.eks. a og c, b og d, eller kun a. Derfor genereres hver gang en temporær tabel med de e-mail adresser der skal sendes til. Da jeg ikke bare kan slette brugeren hvis han ikke ønsker nyhedsbreve, og fordi det ikke vil være hensigtsmæssigt at have et ja/nej felt til nyhedsbrev i tabellerne a, b, c og d vil jeg gøre noget andet. Jeg vil lave en helt seperat, ny tabel (no_news) hvor alle de e-mail adresser der IKKE skal sendes nyhedsbrev til fremover ligger.
Hver gang jeg sender nyhedsbrev ud (overfører e-mail adresser fra de tabeller der skal have nyhedsbrev) bliver disse mail adresser lagt ned i temp_email tabellen.
Spørgsmålet er hvordan jeg lettest, før udsendelse af nyhedsbrevet sletter alle de email adresser der ligger i no_news fra temp_email?
Korrekt- jeg ved ikke på forhånd hvem der skal modtage e-mail.
Modtagerne er som skrevet delt op igrupper/tabeller - a,b,c,d. Men da samme modtager godt kan være i flere grupper lægges hans/hendes mail adresse distinct over i temp_email.
Hans email adresse skal fjernes fra temp_email hvis denne står i no_news.
Hvordan gør man det (når der er flere end 1 email adresse i no_news der skal fjernes fra temp_email.)
Hvis du laver en kørsel der giver dig no_news og placere dit resultat i en array... (kald det et eller andet) ... herefter laver du din kørsel på temp_email... i det du så danner dit mail siger du noget i retning af :
do while not maillist.eof Tjek om maillist(\"email\") ikke findes i array\'et lav din mail maillist.movenext loop
Koden for din array må du lige selv slå op...
mne rasmusp... ovennævnte kan laves på mange måder..
Et andet forslag kunne også være, hvis du hellere vil arbejde på tabeller:
Lav et udtræk på no_news skriv resultatet til en tabel. Lav dit udtræk til din maillist..
løb maillist igennem, (do while not maillist.eof) tjek din email op mode din no_news tabel du lige har lavet, tag brug din maillist(\"email\"), som udvalgskretirie i din no_mail.. hvis den ikke findes laves mailen, eller springer du den over.. herefter movenext og loop...
Slut af med at slette alt indholdet i no_news, så den er klar til næste gang..
/arno
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.