---
title: "Skicka mail"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/7828-skicka-mail"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "kristoffer"
published: "2001-01-18T21:05:00.000Z"
updated: "2001-01-23T09:18:00.000Z"
replies: 3
views: 157
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/7828-skicka-mail"
---

# Skicka mail

## #1 — kristoffer, 2001-01-18T21:05Z

Jag skall skicka ett nyhetsbrev till 600 personer och vill vara helt säker på att koden är rätt. Jag är lite orolig för att det kommer bli Timeout och liknande. Bland annat vet jag inte hur det skall se där jag skapar objektet. Detta skall väl hellre göras utanför loopen? Men i så fall måste jag väl tömma variblerna efter varje skick?

```
<%
   Dim rs, mail, subject, message, data_source, sql_select, no

   no = 0
   message = Request.Form("message")
   sql_select = "select email from users"
   data_source = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("db.mdb")

   Set rs = Server.CreateObject("ADODB.Recordset")
   rs.Open sql_select, data_source

   server.scripttimeout = 3600
   While Not rs.EOF
   Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
   Mailer.Timeout = 3600
   Mailer.CharSet = 2
   Mailer.FromName = "gratistavlingar.com"
   Mailer.FromAddress= "nyhetsbrev@gratistavlingar.com"
   Mailer.RemoteHost = "mail.host.com"
   Mailer.AddRecipient "", rs("email")
   Mailer.Subject = Request.Form("subject")
   Mailer.BodyText = message & rs("email")
   Mailer.SendMail
   Set mail = Nothing
rs.MoveNext
   Wend
   rs.Close
   Set rs = Nothing
%>
```

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

## #2 — kristoffer, 2001-01-23T08:41Z

Ingen som vet?

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

## #3 — Vide, 2001-01-23T08:54Z

När jag skall skapa en sådan funktion, så brukar jag lägga till ett fäljt i databasen. Sedan när jag skickat ett brev så sätter jag en etta i brevets post. Jag ändrar sedan SQL-satsen så att vilkoret för att en post skall komma med, är att det nya fältet inte har en etta.

Då spelar det ingen roll om det blir timeout, du kan fortsätta igen tills du har tagit dig igenom hela databasen med adresser...

Sedan kan du ju för att slippa uppdatera sidan själv lägga in META-refresh så länge det finns poster kvar... :)

Mvh, Vide

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

## #4 — PatrikB, 2001-01-23T09:18Z

Skulle oxå "lyfta" ur initieringen av mail komponenten från loopen och på så vis oxå "speeda" upp scriptet lite. Initiering kostar på prestanda.

ex:

```
<%
Dim rs, mail, subject, message, data_source, sql_select, no
no = 0
message = Request.Form("message")
sql_select = "select email from users"
data_source = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("db.mdb")

Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql_select, data_source

server.scripttimeout = 3600
While Not rs.EOF
Mailer.Timeout = 3600
Mailer.CharSet = 2
Mailer.FromName = "gratistavlingar.com"
Mailer.FromAddress= "nyhetsbrev@gratistavlingar.com"
Mailer.RemoteHost = "mail.host.com"
Mailer.AddRecipient "", rs("email")
Mailer.Subject = Request.Form("subject")
Mailer.BodyText = message & rs("email")
Mailer.SendMail
rs.MoveNext
Wend
rs.Close
Set rs = Nothing
Set mail = Nothing
%>
```

cya,

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/7828-skicka-mail
