webForumDet fria alternativet

Automatiskt mail vid inlägg i forum

ASP

15 svar · 385 visningar · startad av erka

Medlem sedan dec. 19996 522 inlägg
Frågan#1

Jag sitter å har byggt ett forum där man kan välja att bevaka antingen ett helt forum eller en särskild topic i forumet. Detta sker genom att om man klickar på "bevaka forum (eller topic)" så läggs ens mailadress in i en tabell i forumets databas. Varje gång man gör en ny postning så ska denna tabell kollas igenom och ett mail ska skickas de som antingen bevakare tråden eller hela forumet.

Då är det ju tänkt att själva mail loopen ska ligga i tex. InsertTopic.asp eller InsertReplie.asp, använder mig nu av Jmail 4 och har märkt att den är rätt långsam (sökte här på webforum), det kan röra sig om som max 300 mailadresser som det ska skickas till vid varje inlägg (vid extrema fall).

Om jag lägger den i de båda insert filerna kommer ju det att ta lång tid varje gång man gör en ny postning för den måste skicka ut ett mail till alla som premenumrerar på just forumet/topicen i fråga. Kan man göra det på något annat sätt, har kolla på komponenter såsom AspOcxMail och AspQMail, är de bättre att använda samt ska jag bygga upp mail funktionen på någót annat sätt ?

tacksam för synpunkter och tipps!

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

Medlem sedan mars 20002 836 inlägg
#2

Har du testat att köra Simple mailmerge eller något av de andra laternativen för att skicka stora mängder med mail.

cya,
PatrikB

------------------
*ordning och reda!, pengar på fredag.*

Medlem sedan dec. 19996 522 inlägg
#3
which is used to create personalized emails from a template.

Nja det verkar ju mest användas till att kunna bygga "dynamiska" mallar, jag är mer ute efter snabbaste sättet att plocka ut ett antal 1-400 adresser ur en db och skicka ett mail till dessa.

Tex om man kan göra ett litet script som anropas i insert filen och sedan efter att det är igångsatt skickas man tillbax till forumet medans scriptet som skickar till alla i db:n arbetar i bakgrunden på servern

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

Medlem sedan mars 20002 836 inlägg
#4

Kolla in de andra klasserna som finns med, tex MailMerge ... fast då måste du ha tillgång till din PickUp-mapp

om du sätter LazySend till true så går det ju lite snabbare oxå .... fast e ju inte att rekomendera.

PSST.. enda sättet att få snabba mailutskick är genom listserv funktion

cya,
PatrikB

[Redigerat av PatrikB den 15 okt 2001]

Medlem sedan dec. 19996 522 inlägg
#5

Denna borde väll inte fungera, men det för det uppenbarligen, låt oss säga den ska gå igenom 60 mail adresser och skicka till den, blir det acceptabelt eller för tok för segt. Har tänkt att man kunde skriva en liten vb applikation och köra igång med en trigger så det körs i bakgrunden och inte på själva sidan. Men som sagt, det har jag inte tid med nu så jag undrar hur ser detta egentligen ut

strSQL = "SELECT ForumId, WatchForumUserId FROM WatchForums WHERE ForumId = "& strForumId &""
Set Rs = Connect.Execute(strSQL)
	If Rs.EOF Then
		Rs.Close
		Set RS = Nothing
	Else
		Rs.Close
		Set RS = Nothing
		ArrRs = Connect.Execute(strSQL).getrows()
		Set JMail = Server.CreateObject("JMail.SMTPMail") 
		Set msg = Server.CreateOBject( "JMail.Message" )
		Jmail.LazySend = True
		JMail.ContentType = "text/html"
		JMail.ServerAddress = "mail.extranet.se" 
		JMail.Sender = "forum@extranet.se"
		JMail.Subject = "New topic in the forum "& strForumName
		JMail.Priority = 3
		JMail.body = "A new topic has been posted in the forum "& strForumName & "<br><br>" &"<a href=""ShowForum.asp?ForumID="& strForumID &""">" & strSubject & "</a>"
			For i = 0 to ubound(ArrRs,2) 
				JMail.AddRecipient ""& ArrRs(1,i) &"" 
			Next 
		Erase ArrRs 
		JMail.Execute 
	End If

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

Medlem sedan juni 200032 967 inlägg
#6

Nu är jag medveten om att jag inte svarar på själva frågan, men jag har en undran och ett förslag:

Fråga: Varför gå över ån efter vatten? Varför konkatenerar du varje mailadress med två tomma strängar??? Du kan ta bort det fetstilta:

JMail.AddRecipient [b]""&[/b] ArrRs(1,i) [b]&""[/b]

Förslag: Använd JMails metod för att skicka med bcc-mottagare istället. Jag blir galen då jag får mail med massor med mottagare, och framför allt att alla andra får min mailadress på ett sådant sätt.

Mvh,

------------------
All your base are belong to me.

Medlem sedan dec. 19996 522 inlägg
#7

Jo de kan jag ju ta bort, snabbt och slarvigt skriven :(

bcc ska jag kika mera på, men det är internt så mailadresserna får komma ut :) tack för sunpunkterna, ska kolla upp bcc..

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

Medlem sedan mars 20002 836 inlägg
#8

Ser helt ok ut förutom att du bör lägga till alla som ska ha mail som BCC

JMail.AddRecipientBCC ""& ArrRs(1,i) &""

Annars kan de andra se vilka det är som får mail och det kanske inte alltid är så bra.

cya,
PatrikB

------------------
*ordning och reda!, pengar på fredag.*

Medlem sedan dec. 19996 522 inlägg
#9

tack patrikb, ska fixa iordning bcc så får vi se om det går lite snabbare, jag har en till fråga. Vad gör

Jmail.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR")

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

Medlem sedan dec. 19996 522 inlägg
#10

Även med denna kod får jag med vilka som fått mailet, hur döljer jag det, det är inte superviktigt, men eftersom ni sa att jag skulle använda bcc så testade jag det, men någe vill sig ändå inte riktigt.

strSQL = "SELECT WatchForumUserId FROM watchForums WHERE forumID = "& strForumId &" UNION SELECT WatchTopicUserID from WatchTopics where TopicID ="& strTopicId&""
Set Rs = Connect.Execute(strSQL)
	If Rs.EOF Then
		Rs.Close
		Set RS = Nothing
	Else
		Rs.Close
		Set RS = Nothing
		ArrRs = Connect.Execute(strSQL).getrows()
'KODEN KOMMER HÄR! FÖR ATT LOPPA IGENOM OCH SKICKA MAIL
			Set JMail = Server.CreateObject("JMail.SMTPMail") 
			set msg = Server.CreateOBject( "JMail.Message" )
			Jmail.LazySend = True
			JMail.ContentType = "text/html"
			JMail.ServerAddress = "mail.extranet.se" 
			JMail.Sender = "forum@extranet.se"
			JMail.Subject = "New replie to the topic " & trim(strTopicName) &" in the forum "& trim(strForumName) 
			JMail.Priority = 3
			JMail.body = "A replie to the topic "& strTopicName & " in the forum "& strForumName &"<br><br>Go directly to the topic "& strTopicName &"<br><a href=""ShowTopic.asp?ForumID="& strForumId &"&TopicId="& strTopicId &""">"& strTopicName &"</a>"
			JMail.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR")
			
			For i = 0 to ubound(ArrRs,2) 
				JMail.AddRecipientBCC ArrRs(0,i) 

				Next 
				Erase ArrRs 
				JMail.Execute 
		End If

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

Medlem sedan maj 20011 312 inlägg
#11

erka! Fick du ditt script att fungera eller? Jag ska själv bygga en sådan funktion snart. Några tips?

------------------
Alltid lär man sig något nytt varje dag...

Medlem sedan mars 20002 836 inlägg
#12

Du kanske måste ha med Jmail.AddRecipient "dinmail@dindomain.nu"

Lägg den innan for loopen

cya,
PatrikB

------------------
*ordning och reda!, pengar på fredag.*

Medlem sedan aug. 2001226 inlägg
#13

Du kan använda CDONTS, vet dock inte koden

------------------
-------
/Pirro
Response.Redirect " http://pereng.cjb.net "

Medlem sedan mars 20002 836 inlägg
#14

CDONTS eller inte, eller ngn annan mailkomponent ger samma resultat, långsamma mailutskick

cya,
PatrikB

------------------
*ordning och reda!, pengar på fredag.*

Medlem sedan feb. 20034 441 inlägg
#15

Jag använder Jmail's "Speedmailer" till det här, funkar hur bra som helst och det är inte så mycket kod att hålla reda på.

Medlem sedan nov. 20017 144 inlägg
#16

Ok, nu är det dryga tre(3) år mellan inläggen här... :e ;)

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