---
title: "'Till-fältet' med CDONTS"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/134598-till-fältet-med-cdonts"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "web00132"
published: "2005-09-21T16:09:40.000Z"
updated: "2005-09-22T13:43:27.000Z"
replies: 18
views: 523
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/134598-till-fältet-med-cdonts"
---

# 'Till-fältet' med CDONTS

## #1 — web00132, 2005-09-21T16:09Z

Jag har två frågor:

1\. Om jag vill bygga ett nyhetsbrev med CDONTS, hur kan man bäst loopa igenom en databas så mailet skickas till alla i databasen? Jag funderade på att antingen loopa igenom hela CDONTS-koden och hämta en ny variabel för To-fältet tills databasen är tömd, vilket borde ta ganska mkt kraft och ta lång tid. Alternativet, kom jag fram till, borde vara att loopa igenom databasen och lägga till alla mailadresser i To-fältet och skicka. Vad är bäst?

2\. Hur ändrar man mail-adress i To-fältet så det ser ut som att nyhetsbrevet bara skickas till t ex <mail@mail.com> fast det kanske skickas till jättemånga adresser?

Vad tror ni, vad blir bäst och hur skulle det bäst kunna kodas?

Permalänk: https://www.webforum.nu/p/134598

## #2 — emission, 2005-09-21T16:12Z

Lägg adresserna i bcc-fältet i stället, så blir det finfint.

Permalänk: https://www.webforum.nu/p/1673996

## #3 — web00132, 2005-09-21T17:50Z

Åh, tackar! Det är ju faktiskt jättebra :) Men hur ser den koden ut, typ såhär eller:

```
myMail.From="mail@mail.com"
myMail.To="mail@mail.com"
myMail.Subject="Nyhetsbrev!"
[B]myMail.Bcc[/B]=DB-loop
myMail.BodyFormat=0
myMail.MailFormat=0
myMail.Body=HTML
myMail.Send
```

Red: Det var ju faktiskt inte svårare än att jag kunde testa det, och det funkade!

Permalänk: https://www.webforum.nu/p/1674039

## #4 — web00132, 2005-09-21T20:08Z

En annan fråga inom samma ämne, varför kan jag inte bunta ihop värden i min array (dvs alla e-postadresser) på det här sättet:

```
    <%
    Dim myMail
    Dim HTML
    Set myMail = CreateObject("CDONTS.NewMail")

    HTML = "<HTML>Hej hej!<HTML>"

    dim rs,objconn
	set objconn = server.createobject("ADODB.connection")
	objconn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("data.mdb")
    set rs = server.createobject("ADODB.recordset")
    sqlOpen = "SELECT epost FROM kund;"
    rs.open sqlOpen, objconn, adlockoptimistic

        IF NOT rs.EOF THEN arrRecords = rs.GetRows

	rs.close
	set rs = nothing

	objConn.close
    set objConn = nothing

    [B]string = Join(arrRecords,";")[/B]

    myMail.From="mail@mail.com"
    myMail.To=string
    myMail.Subject="Nyhetsbrev!"
    myMail.BodyFormat=0
    myMail.MailFormat=0
    myMail.Body=HTML
    myMail.Send
    set mymail=nothing
    Response.Write "Message Sent"
    %>
```

 Får felmeddelandet: "Type mismatch: 'Join'". Hur ska jag göra?

Permalänk: https://www.webforum.nu/p/1674076

## #5 — Engine^, 2005-09-21T20:09Z

Se till så att inte arrRecords är null.

Permalänk: https://www.webforum.nu/p/1674079

## #6 — web00132, 2005-09-21T20:12Z

Vadå, att det inte skulle finnas några värden i min DB menar du? Men det gör det...

Permalänk: https://www.webforum.nu/p/1674085

## #7 — emission, 2005-09-21T20:30Z

join kan bara sätta ihop en-dimensionella arrayer, men getrows ger ju en två-dimensionell (kolumner och rader). Använd GetString i stället

adresser=rs.GetString(, , , ";" , )

Permalänk: https://www.webforum.nu/p/1674098

## #8 — Engine^, 2005-09-21T20:31Z

Då kanske det är så att någons epost är null.

```
sqlOpen = "SELECT epost FROM kund WHERE epost IS NOT NULL AND epost <> ''"
```

**red.**
Eller så lyssnar du på **emission** och ignorerar vad det nu kan vara jag yrar om :)

Permalänk: https://www.webforum.nu/p/1674100

## #9 — emission, 2005-09-21T20:36Z

> **Engine^ skrev:**
>
> Eller så lyssnar du på **emission** och ignorerar vad det nu kan vara jag yrar om :)

:)

Fast du har en punkt, och det är att man faktiskt bör kolla om adressen är giltig.  Någon fullödig validering blir det inte fråga om, men en liten...

```
SELECT DISTINCT epost FROM kund WHERE epost LIKE '%@%'
```

...kan vara på sin plats.

Permalänk: https://www.webforum.nu/p/1674105

## #10 — web00132, 2005-09-22T09:54Z

Tackar för svaren!
Ja, de e-postadresser som finns i DB:n är mina allihopa så jag vet att de funkar. Alltså mitt script funkar om jag loopar hela skiten liksom, men det vill jag inte göra. Det måste gå att loopa ut alla mailadresser enbart så det tar så lite kraft som möjligt, eller då alltså lägga dom i en array och sen skriva ut dem. Vilket som.

Nu ändrade jag till getstring men det funkade inte:

```
    <%
    Dim myMail
    Dim HTML
    Set myMail = CreateObject("CDONTS.NewMail")

    HTML = "<HTML>Hej hej!<HTML>"

    dim rs,objconn
	set objconn = server.createobject("ADODB.connection")
	objconn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("data.mdb")
    set rs = server.createobject("ADODB.recordset")
    sqlOpen = "SELECT epost FROM kund;"
    rs.open sqlOpen, objconn, adlockoptimistic

        IF NOT rs.EOF THEN arrRecords = [B]rs.GetString[/B]

	rs.close
	set rs = nothing

	objConn.close
    set objConn = nothing

    string = Join(arrRecords,";") ' <-- Rad 26

    myMail.From="mail@mail.com"
    myMail.To=string
    myMail.Subject="Nyhetsbrev!"
    myMail.BodyFormat=0
    myMail.MailFormat=0
    myMail.Body=HTML
    myMail.Send
    set mymail=nothing
    Response.Write "Message Sent"
    %>
```

 Eller använder jag getstring fel på nåt sätt? Jag får fortfarande felmeddelandet "Type mismatch: 'Join'" på rad 26.

Permalänk: https://www.webforum.nu/p/1674211

## #11 — @nders, 2005-09-22T09:58Z

> Eller använder jag getstring fel på nåt sätt?

1) Du får ju tillbaka en sträng av GetString(). Därav namnet... Så du ska alltså inte hålla på och joina.
2) emission gav ju ett finfint exempel. Provade du det?

Permalänk: https://www.webforum.nu/p/1674212

## #12 — web00132, 2005-09-22T10:34Z

Ja asså du menar det här: "rs.GetString(, , , ";" , )"
Jag får syntax error då. Jag har testat en massa olika och kollat msdn (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdmthgetstringmethod(recordset)ado.asp) men jag lyckas inte. Helt utan parametrar skriver den ut e-postadresserna men med ett mellanslag mellan varje, hur får man ett ; mellan varje?

Red. Och just det, jag tog bort join-prylen. Tackar!

Permalänk: https://www.webforum.nu/p/1674218

## #13 — @nders, 2005-09-22T10:39Z

Du kan ju alltid prova på att läsa om funktionen även på Devguru; <http://www.devguru.com/technologies/ado/8679.asp> . 

En anledning till att du får syntax error kan vara att vbscript-tolken inte tycker om att första parametern i ett funktionsanrop utelämnas, även om den är *optional*.

Mvh

Permalänk: https://www.webforum.nu/p/1674220

## #14 — web00132, 2005-09-22T13:27Z

Jag får Syntax error ändå:

```
Microsoft VBScript compilation  error '800a03ea'

Syntax error

/test.asp, line 17

IF NOT rs.EOF THEN arrRecords = rs.GetString(adClipString, , ,";", )
-------------------------------------------------------------------^
```

 Har testat det mesta nu tycker jag   :bla

Permalänk: https://www.webforum.nu/p/1674293

## #15 — @nders, 2005-09-22T13:28Z

Ta bort sista kommatecknet, det finns ingen anledning att ha det där.

mvh

Permalänk: https://www.webforum.nu/p/1674294

## #16 — web00132, 2005-09-22T13:31Z

Jo jag har testat det med: "Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another." får jag då.

Permalänk: https://www.webforum.nu/p/1674296

## #17 — @nders, 2005-09-22T13:33Z

Har du inkluderat adovbs.inc eller på annat sätt definierat *adClipString*?

Permalänk: https://www.webforum.nu/p/1674297

## #18 — web00132, 2005-09-22T13:39Z

Hähä, eee, jo asså det har jag ju gjort...    :r 
Tack ska du ha, funkar finfint!  :bire

Permalänk: https://www.webforum.nu/p/1674300

## #19 — @nders, 2005-09-22T13:43Z

Topp! (y)

Permalänk: https://www.webforum.nu/p/1674303

---

Tråden på webben: https://www.webforum.nu/amne/asp/134598-till-fältet-med-cdonts
