webForumDet fria alternativet

Jmail och 10 at gangen eller nat sant...

ASP

16 svar · 498 visningar · startad av crisse6

Medlem sedan dec. 20002 526 inlägg
Frågan#1

Tjooooooooo!

Hanvisar till denna traden:
http://www.webforum.nu/showthread.php?s=&threadid=49759&highlight=nyhetsbrev

Har last igenom den osa, men den ar ganska rorig, far inte fram riktigt om det blev ratt nagongang i den traden.

Vill alltsa hamta alla email adresser fran db'n och sedan skicka ut 10 eller nat at gangen... och sedan fa reda pa hur manga det skickades till.

Nagon sjal dar som har koll?

Medlem sedan dec. 20002 526 inlägg
#2

okej.... hmmm..... ingen som vet eller?

Medlem sedan mars 20015 287 inlägg
#3

Tycker det verkar som om det fungerade. Varför inte helt enkelt testa? Klipp & klistra!

Medlem sedan dec. 20002 526 inlägg
#4

okej.... far la kolla det da.... hehe

Medlem sedan aug. 20003 575 inlägg
#5

Hmm, använd javascript. Sidan skickar 10 sedan så får sídan fram id:t som den skall starta på igen via querystring oså skickar den 10 ifrån det id:t osv

Medlem sedan dec. 20002 526 inlägg
#6

nja du nickemannen! det dar med javascript vet jag inte..... eller? na, men ska kora pa ASP nu, tack anda ;)

Medlem sedan dec. 20002 526 inlägg
#7

Har fatt det att fungera nu osa, men bara en fraga, fick namligen inte ordning pa det..... vill ha en lank som gor sa att man kan avregistrera sig, men jag far ej till det med adressen for att det ska bli ratt... iaf, sa har ser hela koden ut:

intTimes = request.QueryString("times")
If intTimes = "" Then intTimes = 0

sql="SELECT email FROM t_mailinglist "

set rs=objConn.execute(sql)
varEmail = rs.Getrows()

set rs = Nothing
Set objConn = Nothing

'## -- hur många mail ska skickas i stöten --
intSentLetters = 50 * intTimes

intTimes = intTimes + 1

If Not intSentLetters > UBound(varEmail,2) Then

	subject = "Nyhetsbrev!"
	message = request.form("message")
	unsubscribe = "-----------------------------------------"&vbcrlf&"http://www.xxxx.nu/unsubscribe.asp?address="
	
	Set JMail = Server.CreateObject("JMail.SMTPMail") 
		JMail.ServerAddress = "xxx.xxxx.xx"
		JMail.Sender = "cristoffer@xxxx.xx"
		JMail.Subject = subject
		jmail.Body = message & vbcrlf & vbcrlf & unsubscribe

		JMail.Priority = 3
		JMail.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR")
		
			'## -- loopa igenom alla mailadresser som hämtats från db och sparats i arrayen --
			For N = intSentLetters TO UBound(varEmail,2)
				intCounter = intCounter + 1
		
				JMail.AddRecipientBCC varEmail(0,N)
				
				If intCounter = 49 Then Exit For

			Next
		
		JMail.Execute

	strURL = "sendMailinglist.asp?times=" & intTimes
	Response.Redirect strURL
Else
	Response.Write "Alla mail har skickats."
End If
Medlem sedan dec. 20002 526 inlägg
#8

ingen respons? :D

Medlem sedan juni 200032 967 inlägg
#9

Jag förstår inte vad du menar att problemet är.

Medlem sedan mars 20015 287 inlägg
#10

Problemet är att herrn vill skicka med en länk i sina mail, med en querystring som är olika för alla medlemmar, fast han använder sig av BCC.

Medlem sedan dec. 20002 526 inlägg
#11

precis.

Medlem sedan dec. 20002 526 inlägg
#12

sa har ser koden ut nu, inga felmess, men det blir forsta mailadressen som ligger i db'n i unsubscribe lanken pa alla mail :(

[red]
<%
intTimes = request.QueryString("times")
If intTimes = "" Then intTimes = 0

sql="SELECT email FROM t_mailinglist "

set rs=objConn.execute(sql)

varEmail = rs.Getrows()

set rs = Nothing
Set objConn = Nothing

'## -- hur många mail ska skickas i stöten --
intSentLetters = 50 * intTimes

intTimes = intTimes + 1

If Not intSentLetters > UBound(varEmail,2) Then

'## -- loopa igenom alla mailadresser som hämtats från db och sparats i arrayen --
For N = intSentLetters TO UBound(varEmail,2)
	intCounter = intCounter + 1
				
	subject = "Nyhetsbrev från !"
	message = request.form("message")
	unsubscribe = "-----------------------------------------"&vbcrlf&"http://www.xxx.nu/unsubscribe.asp?address="&varEmail(0,N)
	
	Set JMail = Server.CreateObject("JMail.SMTPMail") 
		JMail.ServerAddress = "smtp.xxx.nu"
		JMail.Sender = "cristoffer@xxx.nu"
		JMail.Subject = subject
		jmail.Body = message & vbcrlf & vbcrlf & unsubscribe

		JMail.Priority = 3
		JMail.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR")
		
		'JMail.AddRecipientBCC varEmail(0,N)
		JMail.AddRecipient varEmail(0,N)
				
		JMail.Execute

	If intCounter = 49 Then Exit For

Next
	strURL = "sendMailinglist.asp?times=" & intTimes
	Response.Redirect strURL
Else
	Response.Write "Alla mail har skickats."
End If
%>
Medlem sedan juni 200032 967 inlägg
#13

Ja, det är så det fungerar. Antingen skickar du separata mail, eller så gör du inte det. Det är bara att välja.

Medlem sedan dec. 20002 526 inlägg
#14

men hanger ej med? hur ska koden se ut for det da? ar lite "lost" har....?

Medlem sedan juni 200032 967 inlägg
#15

Ska du ha en länk som skiljer sig i varje mail, då får du skicka ett separat mail till varje mottagare. BCC betyder blind carbon copy, alltså alla mottagare får en kopia av ett och samma mail.

Annars kan du ju alltid ha en generell unsubscribe-sida där man får fylla i sin emailadress.

mvh

Medlem sedan dec. 20002 526 inlägg
#16

jo.... men blir inte det en javla nerdragning i prestanda?

Medlem sedan mars 20015 287 inlägg
#17

Som vi tidigare sagt crisse, så antingen skickar du olika mail eller så skickar du lika mail, det är ju liksom bara att välja. Det allra enklast är ju som @nders skriver o som vi diskuterade förut att ha en länk till en sida där man är tvungen att plita ner sin adress.
Detta annars tycker jag borde kunna fungera och skicka olika mail.
Dock otestat.

<% Server.ScriptTimeout = 1600 %>
Du lyckades!!
<!--#include file="db_conn.asp" -->
<%
intTimes = request.QueryString("times")
If intTimes = "" Then intTimes = 0

sql="SELECT email FROM t_mailinglist "

set rs=objConn.execute(sql)

varEmail = rs.Getrows()

set rs = Nothing
Set objConn = Nothing

'## -- hur många mail ska skickas i stöten --
intSentLetters = 50 * intTimes

intTimes = intTimes + 1

If Not intSentLetters > UBound(varEmail,2) Then

'## -- loopa igenom alla mailadresser som hämtats från db och sparats i arrayen --
For N = intSentLetters TO UBound(varEmail,2)
stremail = varEmail(0,N)
	intCounter = intCounter + 1
				
	subject = "Nyhetsbrev från skriptat.nu!"
	message = request.form("message")
	unsubscribe = "-----------------------------------------"&vbcrlf&"http://www.skriptat.nu/unsubscribe.asp?address="&stremail
	
	Set JMail = Server.CreateObject("JMail.SMTPMail") 
		JMail.ServerAddress = "smtp.skriptat.nu"
		JMail.Sender = "cristoffer@skriptat.nu"
		JMail.Subject = subject
		jmail.Body = message & vbcrlf & vbcrlf & unsubscribe
		JMail.Priority = 3
		JMail.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR")
		JMail.AddRecipient stremail 
		JMail.Execute

	If intCounter = 49 Then Exit For

Next
	strURL = "sendMailinglist.asp?times=" & intTimes
	Response.Redirect strURL
Else
	Response.Write "Alla mail har skickats."
End If
%>

/r en liten tankevurpa.

259 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)