---
title: "Jmail 100 i taget"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/50764-jmail-100-i-taget/page2"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "timedia"
published: "2002-08-20T08:51:49.000Z"
updated: "2006-02-14T14:35:20.000Z"
replies: 29
views: 2404
page: 2
pages: 2
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/50764-jmail-100-i-taget"
---

# Jmail 100 i taget

_Sida 2 av 2._

## #21 — timedia, 2002-08-28T09:47Z

Jag får *Du lyckades!! URL: skicka.asp?times=1* även om jag har över 100 mailadresser på min testlista. Det borde väl stå times=3 (eller 2)
 redigerad: Dock gick alla mail iväg ser jag!

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

## #22 — PatrikB, 2002-08-28T10:20Z

ok,

red: glöm det .....

cya,
PatrikB

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

## #23 — PatrikB, 2002-08-28T12:27Z

ok, detta script e ett gammalt ett som jag hittade i gömmorna.

Du får modifiera det så att det passar dig + att du måste lägga till mail-koden. Nu skrivs bara alla mail ut för att man ska se att det funkar.

```
<%
Option Explicit
Response.Buffer = True
Response.Expires = -10

Dim strConnString
Dim strSQLeml
Dim objDB
Dim rstEmails
Dim varEmails
Dim lngMaxIndex
Dim lngStart
Dim lngMailsToSend
Dim lngTimes
Dim N
Dim strUrl

'## -- set defaults --
Call SetVars()

'## -- wich db to use --
strConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("[B]/db-folder/db-name.mdb[/B]")

'## -- open database --
Set objDB = GetConn(strConnString)

	strSQLeml = "SELECT [B]EmailField[/B] FROM [B]EmailTable[/B]"
	
	'## -- create recordset with all emails --
	Set rstEmails = GetRS(strSQLeml, objDB)
	
		'## -- get all emails as a 2-dimensional array --
		varEmails = GetRows(rstEmails)
	
	'## -- clean up --
	Set rstEmails = Nothing
	
Set objDB = Nothing
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Sending...</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>

<BODY bgcolor="#FFFFFF" text="#000000">
<%
'## -- check if any emails has been returned --
If IsArray(varEmails) Then
	'## -- we have emails to send --
	
	'## -- total emails to send --
	lngMaxIndex = UBound(varEmails,2)
	
	
	Response.Write "TOTAL MAILS TO BE SENT: " & lngMaxIndex & "<BR>"
	
	'## -- check that start mail don+t go over max emails to send --
	If Not lngStart >= lngMaxIndex Then
	
		'## -- print to browser wich mail to start with --
		Response.write "<BR>Start mail: " & lngStart & "<BR><BR>Sending:<BR>"
		
		'## -- send mails in interval --
		Call SendMails()
		
		'## -- keep sending --
		Call ReloadPage(1)
		
		Response.Write "<P>" & lngStart + lngMailsToSend & " have been sent.</P>"
	Else
		Response.Write "All mails have been sent"
	End If
	
Else
	Response.Write "No mail found in database"
End If
%>
</BODY>
</HTML>
<%
'## -- set values --
Sub SetVars()
	lngTimes = Request.QueryString("times")
		If lngTimes = "" Then lngTimes = 0
	
	'## -- how many mails to send per page --
	lngMailsToSend = 50
	
	'## -- get mail to start with --
	lngStart = StartMail(lngTimes, lngMailsToSend)
End Sub

Sub ReloadPage(ByVal showSeconds)
		strUrl = Request.ServerVariables("SCRIPT_NAME") & "?times=" & lngTimes + 1
		Response.AddHeader "REFRESH", showSeconds & ";URL=" & strUrl
End Sub

'## -- send mails --
Sub SendMails()

		'## -- loop throug mails to send --
		For N = lngStart TO (lngStart + (lngMailsToSend - 1))
		
			'## -- replace with mailing code --
			
			Response.Write "&nbsp;&nbsp;" & varEmails(0,N) & "<BR>"
			
			'## -- end replacing with mailing code --
			
			'## -- so we don+t loop over the array index --
			If N >= lngMaxIndex Then Exit For
			
		Next
		
End Sub

'## -- get first index of mail to send --
Function StartMail(ByVal TimesSent, ByVal MaxToSend) ' As Long
	StartMail = MaxToSend * TimesSent
End Function

'## -- creates and return an open connection to the database
'##    specified in connString
'##
Function GetConn(ByVal connString) ' As ADODB.Connection
	Dim objConn
	Set objConn = Server.CreateObject("ADODB.Connection")
		objConn.Open connString
		
		'## -- return an open db-connection --
		Set GetConn = objConn
End Function

'## -- creates and return a recordset
'##
Function GetRS(ByVal sqlQuery, oCnn) ' As Recordset
	Dim rstTemp
	
	Set rstTemp = oCnn.Execute(sqlQuery)
		'## -- return recordset --
		Set GetRS = rstTemp
End Function

'## -- get all posts from database as a
'##    2-dimensional array
'##
Function GetRows(oRs) ' As Variant
	Dim varTemp(0,0) ' As Variant
	
	If Not oRs.EOF Then
		'## -- return all posts as a 2-dimensional array --
		GetRows = oRs.GetRows()
	Else
		'## -- return as an empty 2-dimensional array --
		GetRows = varTemp
	End If
	
End Function
%>
```

Du får ändra de fetmarkerade ställena .......

cya,
PatrikB

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

## #24 — timedia, 2002-08-28T16:21Z

hurra, nu börjar det bli bra

Tack PatrikB, men av någon anledning fungerar bara dom första 50 mailen. Alla 1400 mail går ut, men efter dom första 50 blir det bara tomma mail :(

Jag använder ditt script i sin helhet och visar här bara vad jag har ändrad. 

```
'## -- replace with mailing code --
	Response.Write "  " & varEmails(0,N) & "<BR>"
		
Set JMail = Server.CreateObject("JMail.SMTPMail") 
JMail.ServerAddress = "smtp.digikom.net"
JMail.Sender = "red@moviemix.nu"
JMail.Subject = "Nyhetsbrev från Moviemix"
JMail.AddRecipient "t.m@moviemix.nu"
JMail.AddRecipientBCC varEmails(0,N)

jmail.Body = request.form("text")
JMail.Priority = 3
JMail.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR")
JMail.Execute

			
			'## -- end replacing with mailing code --
```

Följdfråga: Finns det något sätt att undvika att få 1400 mail själv?

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

## #25 — web00132, 2005-10-27T19:12Z

Tre år senare försöker jag mig på samma grej, och frågan kvarstår:

> Följdfråga: Finns det något sätt att undvika att få 1400 mail själv?

 :OO

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

## #26 — emission, 2005-10-27T23:06Z

Lägg dig inte som Recipient utan som RecipientBCC

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

## #27 — web00132, 2005-10-28T17:15Z

Ja det var ju enkelt. :)
Först funkade inte addrecipientbcc om inte addrecipient fanns med, men det löste sig på nåt sätt. Nu funkar det, tack ska du ha!

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

## #28 — Bjarne A, 2006-02-14T12:48Z

Försöker samma sak

försöker mej på med samma sak men får felmedelande

```
TOTAL MAILS TO BE SENT: 59

Start mail: 0

Sending:
bjarne@bjarne.nu

Microsoft VBScript runtime error '800a01f4' 

Variable is undefined: 'JMail' 

/sending.asp, line 115
```

 

Rad 115 är fetmarkerad. 

**Set JMail = Server.CreateObject ("JMail.SMTPMail")**

Vanligt JMail enligt min JMail kod fungerar. sidan ligger på web10.com

```
<%
Option Explicit
Response.Buffer = True
Response.Expires = -10

Dim strConnString
Dim strSQLeml
Dim objDB
Dim rstEmails
Dim varEmails
Dim lngMaxIndex
Dim lngStart
Dim lngMailsToSend
Dim lngTimes
Dim N
Dim strUrl

'## -- set defaults --
Call SetVars()

'## -- wich db to use --
strConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/db/db2.mdb")

'## -- open database --
Set objDB = GetConn(strConnString)

	strSQLeml = "SELECT EmailField FROM EmailTable"
	
	'## -- create recordset with all emails --
	Set rstEmails = GetRS(strSQLeml, objDB)
	
		'## -- get all emails as a 2-dimensional array --
		varEmails = GetRows(rstEmails)
	
	'## -- clean up --
	Set rstEmails = Nothing
	
Set objDB = Nothing
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Sending...</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>

<BODY bgcolor="#FFFFFF" text="#000000">
<%
'## -- check if any emails has been returned --
If IsArray(varEmails) Then
	'## -- we have emails to send --
	
	'## -- total emails to send --
	lngMaxIndex = UBound(varEmails,2)
	
	
	Response.Write "TOTAL MAILS TO BE SENT: " & lngMaxIndex & "<BR>"
	
	'## -- check that start mail don+t go over max emails to send --
	If Not lngStart >= lngMaxIndex Then
	
		'## -- print to browser wich mail to start with --
		Response.write "<BR>Start mail: " & lngStart & "<BR><BR>Sending:<BR>"
		
		'## -- send mails in interval --
		Call SendMails()
		
		'## -- keep sending --
		Call ReloadPage(1)
		
		Response.Write "<P>" & lngStart + lngMailsToSend & " have been sent.</P>"
	Else
		Response.Write "All mails have been sent"
	End If
	
Else
	Response.Write "No mail found in database"
End If
%>
</BODY>
</HTML>
<%
'## -- set values --
Sub SetVars()
	lngTimes = Request.QueryString("times")
		If lngTimes = "" Then lngTimes = 0
	
	'## -- how many mails to send per page --
	lngMailsToSend = 50
	
	'## -- get mail to start with --
	lngStart = StartMail(lngTimes, lngMailsToSend)
End Sub

Sub ReloadPage(ByVal showSeconds)
		strUrl = Request.ServerVariables("SCRIPT_NAME") & "?times=" & lngTimes + 1
		Response.AddHeader "REFRESH", showSeconds & ";URL=" & strUrl
End Sub

'## -- send mails --
Sub SendMails()

		'## -- loop throug mails to send --
		For N = lngStart TO (lngStart + (lngMailsToSend - 1))

		
'## -- replace with mailing code --
	Response.Write "  " & varEmails(0,N) & "<BR>"
		
[B]Set JMail = Server.CreateObject ("JMail.SMTPMail")[/B]
JMail.ServerAddress = "localhost"
JMail.Sender = "enrajbs@hotmail.com"
JMail.Subject = "Meddelandets ämnesrad"
JMail.AddRecipient "enrajbs@hotmail.com"
JMail.AddRecipientBCC varEmails(0,N)
jmail.Body = request.form("text")
JMail.Execute

			
'## -- end replacing with mailing code --

			
			'## -- so we don+t loop over the array index --
			If N >= lngMaxIndex Then Exit For
			
		Next
		
End Sub

'## -- get first index of mail to send --
Function StartMail(ByVal TimesSent, ByVal MaxToSend) ' As Long
	StartMail = MaxToSend * TimesSent
End Function

'## -- creates and return an open connection to the database
'##    specified in connString
'##
Function GetConn(ByVal connString) ' As ADODB.Connection
	Dim objConn
	Set objConn = Server.CreateObject("ADODB.Connection")
		objConn.Open connString
		
		'## -- return an open db-connection --
		Set GetConn = objConn
End Function

'## -- creates and return a recordset
'##
Function GetRS(ByVal sqlQuery, oCnn) ' As Recordset
	Dim rstTemp
	
	Set rstTemp = oCnn.Execute(sqlQuery)
		'## -- return recordset --
		Set GetRS = rstTemp
End Function

'## -- get all posts from database as a
'##    2-dimensional array
'##
Function GetRows(oRs) ' As Variant
	Dim varTemp(0,0) ' As Variant
	
	If Not oRs.EOF Then
		'## -- return all posts as a 2-dimensional array --
		GetRows = oRs.GetRows()
	Else
		'## -- return as an empty 2-dimensional array --
		GetRows = varTemp
	End If
	
End Function
%>
```

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

## #29 — @nders, 2006-02-14T12:53Z

Grundlektion 1: Eftersom du använder *Option Explicit* måste du deklararera alla dina variabler. Således får du lägga in *dim Jmail* innan du försöker dig på att skapa det objektet.

Mvh

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

## #30 — Bjarne A, 2006-02-14T14:35Z

Tack!
Behöver mer hjälp.
Det skickas bara dom 50 första mailen även om det ser ut på asp sidan som den går vidare...
Då jag använder färdig kod som jag inte skrivit sjäv, så vet jag inte varför.

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/50764-jmail-100-i-taget/page2  
Föregående sida: https://www.webforum.nu/amne/asp/50764-jmail-100-i-taget.md
