webForumDet fria alternativet

E-post till alla med mailadress

ASP

12 svar · 697 visningar · startad av WebbisNet

Medlem sedan feb. 20032 027 inlägg
Frågan#1

Har lite problem med den här koden, får inte med alla mottagare i mailet. Alla med mail ska ha ett meddelande, skriver jag fel så kan alla mail hamna hos en mottagare och det är inte bra. Nån som har ett bra förslag på hur jag skriver

<%set mailRS=objConn.execute("SELECT userID, mailID, email, username, Headline, sender, message, mailDate "&_
"FROM tblUsers INNER JOIN tblUsers_imail ON tblUsers.userID = tblUsers_imail.reciever")
 
set mail1=objConn.Execute("select distinct userID from tblUsers")

varName=request("toUser")
varMailID = FriendlySQL(Request.Form ("txtMailID"))
varHeadline = FriendlySQL(Request.Form ("txtHeadline"))
varDatum = FriendlySQL(Request.Form ("txtDatum"))
varMail = FriendlySQL(mailRS ("email"))
varTime = Time()
varMessage = FriendlySQL(Request.Form("txtMessage"))

SET objConn = connect()

do until mail1.eof
varReciever = mail1("userID")
	SQL = "INSERT INTO tblUsers_imail"
	SQL = SQL & "(Sender, Reciever, Headline,message, mailDate,mailTime, mailRead, Nyhetsbrev) "
	SQL = SQL & "VALUES(1,'"& varReciever &"','"&varHeadline &"','"&varMessage &"','"& varDatum &"','"& varTime &"', 1, 1)"
'response.write SQL
	'response.write varReciever
	'response.end
objConn.Execute(SQL)
[B]
sTo = varMail
sFrom = "info@webbisen.com"
sSubject = "Information från Webbisen.com , '"& varDate &"' "
sTextBody = "Du har fått ett informationsbrev från [url]Http://www.webbisen.com[/url] "&vbcrlf _
& vbcrlf &"Meddelandet skickades "& varDatum &" "& varTime &" "_
& vbcrlf &"Meddelandets rubrik """& varHeadline &""""&vbcrlf _
& vbcrlf &"Mvh Admin på "& title &""

Set objMail = Server.CreateObject("CDO.Message")
objMail.From = sFrom  
objMail.To = sTo 
objMail.Subject= sSubject 
objMail.TextBody = sTextBody 
objMail.Send 
Set objMail = Nothing

mail1.movenext
loop%>[/B]
Medlem sedan feb. 20011 198 inlägg
#2

Du måste ändra sTo och varMail för varje varv i mail1-loopen.
Med din kod kommer den adressen som hamnar överst i mailRS att få alla mail.

Medlem sedan feb. 20032 027 inlägg
#3

yohpops skrev:

Du måste ändra sTo och varMail för varje varv i mail1-loopen.
Med din kod kommer den adressen som hamnar överst i mailRS att få alla mail.

vilket är bästa sättet at skriva på för att få med alla?

Medlem sedan feb. 20011 198 inlägg
#4

Bäst och bäst.
Ta bort det översta select-satsen.
Ändra mail1 till "select userid,email from tblUsers where mail is not null and mail<>''"
Flytta "varMail = FriendlySQL(mailRS ("email"))" innanför do-loopen och ändra mailRS till mail1.
Sen kanske du inte ska göra insert innan du ser att mailet har gått iväg.

Medlem sedan feb. 20032 027 inlägg
#5

yohpops skrev:

Bäst och bäst.
Ta bort det översta select-satsen.
Ändra mail1 till "select userid,email from tblUsers where mail is not null and mail<>''"
Flytta "varMail = FriendlySQL(mailRS ("email"))" innanför do-loopen och ändra mailRS till mail1.
Sen kanske du inte ska göra insert innan du ser att mailet har gått iväg.

med den här koden så får samma användare flera mail

set mail1=objConn.Execute("SELECT userID, mailID, email, username, Headline, sender, message, mailDate "&_
"FROM tblUsers INNER JOIN tblUsers_imail ON tblUsers.userID = tblUsers_imail.reciever where email is not null and email<>''")

varName=request("toUser")
varMailID = FriendlySQL(Request.Form ("txtMailID"))
varHeadline = FriendlySQL(Request.Form ("txtHeadline"))
varDatum = FriendlySQL(Request.Form ("txtDatum"))

varTime = Time()
varMessage = FriendlySQL(Request.Form("txtMessage"))

SET objConn = connect()

do until mail1.eof
varMail = FriendlySQL(mail1 ("email"))
varReciever = mail1("userID")
	SQL = "INSERT INTO tblUsers_imail"
	SQL = SQL & "(Sender, Reciever, Headline,message, mailDate,mailTime, mailRead, Nyhetsbrev) "
	SQL = SQL & "VALUES(1,'"& varReciever &"','"&varHeadline &"','"&varMessage &"','"& varDatum &"','"& varTime &"', 1, 1)"
'response.write SQL
response.write varReciever

'objConn.Execute(SQL)

sTo = varMail
sFrom = "info@webbisen.com"
sSubject = "Information från Webbisen.com , '"& varDate &"' "
sTextBody = "Du har fått ett informationsbrev från [url]Http://www.webbisen.com[/url] "&vbcrlf _
& vbcrlf &"Meddelandet skickades "& varDatum &" "& varTime &" "_
& vbcrlf &"Meddelandets rubrik """& varHeadline &""""&vbcrlf _
& vbcrlf &"Mvh Admin på "& title &""

Set objMail = Server.CreateObject("CDO.Message")
objMail.From = sFrom  
objMail.To = sTo 
objMail.Subject= sSubject 
objMail.TextBody = sTextBody 
'objMail.Send 
response.write sTo
Set objMail = Nothing

mail1.movenext
loop
response.end
Medlem sedan feb. 20011 198 inlägg
#6

Hur ser tblUsers och tblUsers_imail ut?
Finns inte fältet email i tblUsers?

Medlem sedan feb. 20032 027 inlägg
#7

yohpops skrev:

Hur ser tblUsers och tblUsers_imail ut?
Finns inte fältet email i tblUsers?

tblUsers är användartabellen med alla medlemmar, email är mailadressen i tblUsers, tblUsers_imail är tabellen där alla brev finns

Medlem sedan feb. 20011 198 inlägg
#8

Varför joinar du in tblUsers_imail i frågan?
Gör du det kommer du få en träff per användar och mail.

Ta bort tblUsers_imail ur select-satsen.

Medlem sedan feb. 20032 027 inlägg
#9

yohpops skrev:

Varför joinar du in tblUsers_imail i frågan?
Gör du det kommer du få en träff per användar och mail.

Ta bort tblUsers_imail ur select-satsen.

måste joina in eftersom ett brev (internt meddelande) skickas, imailtabellen och ett E-postmeddelande ska skickas för att meddela att ett internt brev har kommit till inboxen på webbisen till användaren och mailadressen finns i användartabellen

Medlem sedan feb. 20011 198 inlägg
#10

Nej det måste du inte!
Du hämtar ju inte nåt från tblUsers_imail i din kod.
Det som läggs in i tblUsers_imail kommer ju från request!

Medlem sedan feb. 20032 027 inlägg
#11

yohpops skrev:

Nej det måste du inte!
Du hämtar ju inte nåt från tblUsers_imail i din kod.
Det som läggs in i tblUsers_imail kommer ju från request!

så det ska räcka med detta då

<!-- #include virtual="/include/dbconn.asp" -->
<!-- #include virtual="/include/functions.asp" -->
<!-- #include virtual="/include/variabler1.asp" -->
<%set mail1=objConn.Execute("SELECT userID, email, username FROM tblUsers where email is not null and email<>''")
varName=request("toUser")
varMailID = FriendlySQL(Request.Form ("txtMailID"))
varHeadline = FriendlySQL(Request.Form ("txtHeadline"))
varDatum = FriendlySQL(Request.Form ("txtDatum"))
varTime = Time()
varMessage = FriendlySQL(Request.Form("txtMessage"))

SET objConn = connect()
do until mail1.eof
varMail = FriendlySQL(mail1 ("email"))
varReciever = mail1("userID")
	SQL = "INSERT INTO tblUsers_imail"
	SQL = SQL & "(Sender, Reciever, Headline,message, mailDate,mailTime, mailRead, Nyhetsbrev) "
	SQL = SQL & "VALUES(1,'"& varReciever &"','"&varHeadline &"','"&varMessage &"','"& varDatum &"','"& varTime &"', 1, 1)"
'response.write SQL
response.write varReciever
'objConn.Execute(SQL)

sTo = varMail
sFrom = "info@webbisen.com"
sSubject = "Information från Webbisen.com , '"& varDate &"' "
sTextBody = "Du har fått ett informationsbrev från [url]Http://www.webbisen.com[/url] "&vbcrlf _
& vbcrlf &"Meddelandet skickades "& varDatum &" "& varTime &" "_
& vbcrlf &"Meddelandets rubrik """& varHeadline &""""&vbcrlf _
& vbcrlf &"Mvh Admin på "& title &""
Set objMail = Server.CreateObject("CDO.Message")
objMail.From = sFrom  
objMail.To = sTo 
objMail.Subject= sSubject 
objMail.TextBody = sTextBody 
'objMail.Send 
response.write sTo
Set objMail = Nothing

mail1.movenext: loop
response.end%>
Medlem sedan feb. 20011 198 inlägg
#12

Japp.
Och du kan flytta sFrom och sSubject utanför loopen.

Medlem sedan feb. 20032 027 inlägg
#13

verkar som om denna kod fungerade

<%set mail1=objConn.Execute("SELECT userID, email, username FROM tblUsers where email is not null and email<>''")
varName=request("toUser")
varMailID = FriendlySQL(Request.Form ("txtMailID"))
varHeadline = FriendlySQL(Request.Form ("txtHeadline"))
varDatum = FriendlySQL(Request.Form ("txtDatum"))
varTime = Time()
varMessage = FriendlySQL(Request.Form("txtMessage"))

sFrom = "info@webbisen.com"

SET objConn = connect()
do until mail1.eof
varMail = FriendlySQL(mail1 ("email"))
varReciever = mail1("userID")
	SQL = "INSERT INTO tblUsers_imail"
	SQL = SQL & "(Sender, Reciever, Headline,message, mailDate,mailTime, mailRead, Nyhetsbrev) "
	SQL = SQL & "VALUES(1,'"& varReciever &"','"&varHeadline &"','"&varMessage &"','"& varDatum &"','"& varTime &"', 1, 1)"
response.write SQL
'response.write varReciever
objConn.Execute(SQL)

sTo = varMail
sSubject = "Information från Webbisen.com , '"& varDate &"' "
sTextBody = "Du har fått ett informationsbrev från [url]Http://www.webbisen.com[/url] "&vbcrlf _
& vbcrlf &"Meddelandet skickades "& varDatum &" "& varTime &" "_
& vbcrlf &"Meddelandets rubrik """& varHeadline &""""&vbcrlf _
& vbcrlf &"Mvh Admin på "& title &""
Set objMail = Server.CreateObject("CDO.Message")
objMail.From = sFrom  
objMail.To = sTo 
objMail.Subject= sSubject 
objMail.TextBody = sTextBody 
objMail.Send 
'response.write sTo
Set objMail = Nothing

mail1.movenext: loop
'response.end%>
266 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)