[ASP] Meerdere mails versturen met CDO

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Andre1234
  • Registratie: November 2009
  • Laatst online: 01-01-2022
Voor een forum kunnen lezers zich abonneren op bepaalde rubrieken.
Indien er een nieuwe post in deze rubriek wordt gezet zullen deze lezers hier een notificatie mail ontvangen.

Indien bijvoorbeeld 10 mensen zich aangemeld hebben zullen alle 10 deze mensen de notificatiemail ontvangen.
Indien dit aantal groter wordt zie ik dat een deel wel een notificatie e-mail ontvangt en een ander deel niet.
Blijkbaar is de code of de manier hoe ik de mail laat versturen niet geschikt voor een groter aantal e-mail adressen.

De manier waarop het nu gebeurt is kort gezegd:

-- Begin loop
-- Haal het e-mailadres op
-- Verstuur mail
-- Einde loop

De loop is nodig omdat ik niet weet hoe je meerdere e-mail adressen kan invoegen.
ASP:
1
  iMsg.To = "persoon1@mail.com;persoon2@mail.com"

werkte niet.
Bij 40 e-mail adressen wordt bovenstaande loop 40 uitgevoerd.

Indien het mogelijk is om meerdere e-mail adressen gebruiken kan ik de loop wijzigingen naar:
-- Begin loop
-- Haal de e-mailadressen op
-- Einde loop
-- Verstuur mail

Voordeel hier dat de het e-mail script maar 1 keer afgelopen hoeft te worden.

Hieronder de code:
ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
VarMail = "aan"
ControlQuery = "SELECT * FROM MailRubriek WHERE RubriekId="& VarRubriekID &" AND Mail='"& VarMail &"'"
Set objRsControlQuery = Conn.Execute (ControlQuery)

If not objRsControlQuery.EOF then

Do Until objRsControlQuery.EOF
VarUserId = (objRsControlQuery("UserId"))

QueryUserEmail = "SELECT * FROM TblUsers WHERE UserID ="&VarUserId&""
Set QueryUserEmail = Conn.Execute (QueryUserEmail)

VarAllMailAdres = QueryUserEmail("email") 

Response.write VarAllMailAdres&";"
LinkInvoermailrubrieken = "URL"
Link = "Nieuwe post"

    Subject="Nieuwe post in "& Rubriek & ""
    Body = "LS, <br>"&_ 
           "Er is een nieuw topic met als onderwerp: <br>"&_ 
           "-- "& Onderwerp & " --<br><br>"&_
           "Deze topic is van:<br>"&_
           "-- "& Poster & " --<br><br>"&_
           "In de rubriek:<br>"&_
           "-- "& Rubriek & " --<br><br><br>"&_
         
       "**********************************************************************<br>"&_
       "*&nbsp;&nbsp;&nbsp;&nbsp;Dit is een automatisch gegenereerd bericht. <br>"&_
       "**********************************************************************"
       
      set iConf = CreateObject("CDO.Configuration")
      set iMsg = CreateObject("CDO.Message")
      iConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
      iConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "XXXXX.XXXXXXX.nl"
      iConf.Fields.Update
      iMsg.Configuration = iConf
      iMsg.From = ""& PosterEmail &"" 
      iMsg.To = "" & VarAllMailAdres & ""
      iMsg.Subject = Subject
      iMsg.HTMLBody = "<HTML><HEAD></HEAD><BODY style='font-family:Arial;font-size:9pt;color:#000000'>" & Body & "</BODY></HTML>"
      iMsg.Send

objRsControlQuery.MoveNext
Loop
      
end if    


Graag hoor ik tips welke manier ik kan gebruiken om de notificatie mail naar meerdere (+10) mail adressen goed kan laten versturen.

Acties:
  • 0 Henk 'm!

  • tonyisgaaf
  • Registratie: November 2000
  • Niet online
Andre1234 schreef op maandag 13 december 2010 @ 17:29:
De loop is nodig omdat ik niet weet hoe je meerdere e-mail adressen kan invoegen.
ASP:
1
  iMsg.To = "persoon1@mail.com;persoon2@mail.com"

werkte niet.
Bij 40 e-mail adressen wordt bovenstaande loop 40 uitgevoerd.
Je realiseert je dat, wanneer dit wel had gewerkt, alle ontvangers de emailadressen van alle andere ontvangers zouden hebben kunnen zien? Bij genoeg bedrijven een reden om je per direct uit je functie te ontheffen.

Helaas kan ik niets inhoudelijks m.b.t. ASP (classic) zeggen, maar ik zou kiezen voor de "loop", of alle ontvangers in de BCC zetten (indien mogelijk).

Edit: deze pagina lijkt te willen zeggen dat het een comma separated string moet zijn.

[ Voor 10% gewijzigd door tonyisgaaf op 13-12-2010 17:45 ]

NL Weerradar widget Euro Stocks widget Brandstofprijzen widget voor 's Dashboard


Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:10

gorgi_19

Kruimeltjes zijn weer op :9

Limieten kunnen ook bepaald worden door de SMTP-server :) Verder is BCC ook niet per definitie de oplossing; .Net-class stuurt bij bepaalde mailservers de BCC-addressen in de header mee.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 13:36

Creepy

Tactical Espionage Splatterer

Je ontkomt er simpelweg niet aan om elke e-mail los te versturen. SMTP servers hebben vaak limieten en clients en (ontvangende) mail-servers kunnen moeilijk gaan doen met veel personen in de to, cc, of bcc.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10 13:23
persoonlijk zou ik het ook doen door ieder adres een aparte mail te sturen. Je kunt dan ook makkelijker bijhouden of het verzenden naar dit adres gelukt is of niet en besluiten laten nogmaals te versturen, mocht het mislukt zijn....