toMail = " " & rs("mail_field")
varför slänger du in ett mellanslag före emailadressen, innan du kör addrecipientbcc?
------------------
don't follow your friends -- inflate them
17 svar · 480 visningar · startad av Bire
Jag håller på med en maillista och vill att Jmail ska skicka till samtliga mottagare från en accessdb.
Efter att ha läst denna tråd: http://cgi.webforum.nu/wf/Forum11/HTML/000777.html så blev jag bara ännu mer förvirrad ;)
Så här har jag fått det att fungera:
<% Dim Medlemmar
Medlemmar = Request.Form("adresser")
%>
<% Dim Subject
Subject = Request.Form("amne")
%>
<% Dim Meddelande
Meddelande = Request.Form("meddelande")
%>
<html>
<head>
<title></title>
</head>
<body>
</body>
<%
Name = "Bire"
SenderEmail = "bire@upp.se"
Subject = Subject
Recipient = "bire@upp.se"
Bcc = Medlemmar
Body = Meddelande
Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.ServerAddress = "mail.envikenrecords.com"
JMail.Sender = Senderemail
JMail.Subject = Subject
JMail.AddRecipient Recipient
JMail.AddRecipientBCC Bcc
JMail.Body = Body
JMail.Priority = 3
JMail.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR")
JMail.Execute
%>
</html>
Men det funkar inte med att hämta alla mottagare från db och ploppa in dom som jag gjort utan då skulle väl denna kod klämmas in nånstans på ett snyggt sätt ;)
' Send Newsletter'
----------------
Private Sub myJmail(mySMTPserver, myMail, mySubject, myBody)
Dim rs ' as adodb.recordset
Dim strSQL ' as string
Dim toMail ' as string
' sql query to grab all emails from database
'-------------------------------------------
strSQL = "SELECT * FROM Subscribers WHERE Email = True"
OpenDB()
Set oMail = Server.CreateObject("Jmail.SMTPMail")
oMail.ServerAddress = mySMTPServer oMail.Sender = myMail
oMail.Subject = mySubject oMail.AddRecipient myMail
Set rs = Server.CreateObject("ADODB.Recordset")
rs.ActiveConnection = myConn
rs.Source = strSQL
rs.CursorLocation = adUseClient
rs.CursorType = adLockOptimistic
rs.Open
If Not rs.EOF or rs.BOF Then
Do Until rs.EOF or rs.BOf
toMail = " " & rs("mail_field")
oMail.AddRecipientBCC toMail
rs.MoveNext
Loop
End If
Set rs = nothing
oMail.Body = myBody
oMail.AddHeader "Originating-IP: ", Request.ServerVariables("REMOTE_ADDR")
oMail.Execute
Set oMail = nothing
CloseDB()
End Sub
Och så här ser databaskopplingen ut:
<% Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../../cgi-bin/newsletter2.mdb")
Visa = "SELECT * FROM Subscribers ORDER BY Email"
set RecSet=Connect.Execute(Visa)
antal = "SELECT COUNT(*) as antal from Subscribers"
set RecSet2=Connect.Execute(antal)
%>
Om någon har lust att knåpa till detta så vore jag ytterst tacksam..
------------------
<A HREF="http://www.lifestyleshop.nu/bire" TARGET=_blank>CTS / AA / CD / OH / RD / SD / TR / MR</A>
toMail = " " & rs("mail_field")
varför slänger du in ett mellanslag före emailadressen, innan du kör addrecipientbcc?
------------------
don't follow your friends -- inflate them
Ingen aning ;) Den koden är tagen från denna tråd: http://cgi.webforum.nu/wf/Forum11/HTML/000777.html
Jag vet som sagt inte hur man gör detta...
------------------
<A HREF="http://www.lifestyleshop.nu/bire" TARGET=_blank>CTS / AA / CD / OH / RD / SD / TR / MR</A>
oMail.Sender = myMail
har du något värde i myMail? om sender är tom skickas inget, men inget felmeddelande dyker upp.
får du något felmeddelande?
------------------
don't follow your friends -- inflate them
Hehe ;)
Denna kod:
' Send Newsletter'
----------------
Private Sub myJmail(mySMTPserver, myMail, mySubject, myBody)
Dim rs ' as adodb.recordset
Dim strSQL ' as string
Dim toMail ' as string
' sql query to grab all emails from database
'-------------------------------------------
strSQL = "SELECT * FROM Subscribers WHERE Email = True"
OpenDB()
Set oMail = Server.CreateObject("Jmail.SMTPMail")
oMail.ServerAddress = mySMTPServer oMail.Sender = myMail
oMail.Subject = mySubject oMail.AddRecipient myMail
Set rs = Server.CreateObject("ADODB.Recordset")
rs.ActiveConnection = myConn
rs.Source = strSQL
rs.CursorLocation = adUseClient
rs.CursorType = adLockOptimistic
rs.Open
If Not rs.EOF or rs.BOF Then
Do Until rs.EOF or rs.BOf
toMail = " " & rs("mail_field")
oMail.AddRecipientBCC toMail
rs.MoveNext
Loop
End If
Set rs = nothing
oMail.Body = myBody
oMail.AddHeader "Originating-IP: ", Request.ServerVariables("REMOTE_ADDR")
oMail.Execute
Set oMail = nothing
CloseDB()
End Sub
Har jag ännu inte testat att göra nått med alls, det är den som jag behöver hjälp med att implementera i:
<% Dim Medlemmar
Medlemmar = Request.Form("adresser")
%>
<% Dim Subject
Subject = Request.Form("amne")
%>
<% Dim Meddelande
Meddelande = Request.Form("meddelande")
%>
<html>
<head>
<title></title>
</head>
<body>
</body>
<%
Name = "Bire"
SenderEmail = "bire@upp.se"
Subject = Subject
Recipient = "bire@upp.se"
Bcc = Medlemmar
Body = Meddelande
Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.ServerAddress = "mail.envikenrecords.com"
JMail.Sender = Senderemail
JMail.Subject = Subject
JMail.AddRecipient Recipient
JMail.AddRecipientBCC Bcc
JMail.Body = Body
JMail.Priority = 3
JMail.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR")
JMail.Execute
%>
</html>
Jag behöver alltså hjälp med att kombinera de tre olika kodsnuttarna så att det kommer att fungera ;)
Jag är en sopa på asp :e
------------------
<A HREF="http://www.lifestyleshop.nu/bire" TARGET=_blank>CTS / AA / CD / OH / RD / SD / TR / MR</A>
Hello Bire,
här kommer koden som jag använder mig av och den funkar....
'Variable Declaration
'--------------------
Dim myConn ' as adodb.connection
' Create db-connection
'---------------------
Private Function OpenDB()
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Provider = "Microsoft.Jet.OLEDB.4.0"
myConn.ConnectionString = "Data Source=" & Server.MapPath("/my_filepath_to/my_dbase.mdb")
myConn.Open
End Function
' Destroy db-connection
'----------------------
Private Function CloseDB()
Set myConn = nothing
End Function
' Send Newsletter
'----------------
Private Sub myJmail(mySMTPserver, myMail, mySubject, myBody)
Dim rs ' as adodb.recordset
Dim strSQL ' as string
Dim oMail ' as Jmail.SMTPmail
Dim toMail ' as string
' sql query to grab all emails from database
'-------------------------------------------
strSQL = "SELECT * FROM tblNewsMembers WHERE fldMemberActive = True"
OpenDB()
Set oMail = Server.CreateObject("Jmail.SMTPMail")
oMail.LazySend = True
oMail.ServerAddress = mySMTPServer
oMail.Sender = myMail
oMail.Subject = mySubject
oMail.AddRecipient myMail
Set rs = myConn.Execute(strSQL)
If Not rs.EOF or rs.BOF Then
Do Until rs.EOF or rs.BOf
'toMail = rs("fldMemberMail")
oMail.AddRecipientBCC rs("fldMemberMail")
rs.MoveNext
Loop
End If
Set rs = nothing
oMail.Body = myBody
oMail.AddHeader "Originating-IP: ", Request.ServerVariables("REMOTE_ADDR")
oMail.Execute
Set oMail = nothing
CloseDB()
End Sub
OpenDB() funktionen skapar och öppnar ett connection object (vet, ska göra om det)
CloseDB() förstör connection objectet
För att "anropa" mailsubben:
myJmail("my.mail.server",Request.Form("txtCFromMail"),Request.Form("txtNewsSubject"), Request.Form("txtNewsBody")
Hoppas att du får ut ngt av detta, annars e det bara att "höra av sig igen" =P
cya,
PatrikB
------------------
=================================
** ZWGdesign **
=================================
[Redigerat av PatrikB den 07 aug 2000]
Jag fattar inte hur detta går till!
*Tar livet av mig*
------------------
<A HREF="http://www.lifestyleshop.nu/bire" TARGET=_blank>CTS / AA / CD / OH / RD / SD / TR / MR</A>
Det är en Accessbas som ser ut så här:
Tabellen heter: "Subscribers"
Fältet som innehåller mailadresserna heter: "Email"
Sen finns det ett räknarfält som heter: "SubscriberID"
Samt ett som innehåller datum/tid som heter: "DateCreated"
Thats it! ;)
Så här ser kopplingen ut:
<% Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../../cgi-bin/newsletter2.mdb")
Visa = "SELECT * FROM Subscribers ORDER BY Email"
set RecSet=Connect.Execute(Visa)
antal = "SELECT COUNT(*) as antal from Subscribers"
set RecSet2=Connect.Execute(antal)
%>
Hjääälp... :)
------------------
<A HREF="http://www.lifestyleshop.nu/bire" TARGET=_blank>CTS / AA / CD / OH / RD / SD / TR / MR</A>
Jo, på servern ligger den direkt under wwwroot.
------------------
<A HREF="http://www.lifestyleshop.nu/bire" TARGET=_blank>CTS / AA / CD / OH / RD / SD / TR / MR</A>
Hello igen,
skickar lite kod denna väg....
elist.htm:
<html>
<head>
<title>Skicka e-list mail</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF">
<form method="post" action="sendmail.asp">
<table width="100%" border="0" cellspacing="2" cellpadding="2">
<tr>
<td align="right"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Ämne:</font></b></td>
<td>
<input type="text" name="amne" size="30" maxlength="50">
</td>
</tr>
<tr>
<td valign="top" align="right"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Meddelande:</font></b></td>
<td>
<textarea name="meddelande" cols="65" rows="9"></textarea>
</td>
</tr>
<tr>
<td valign="top" align="right"> </td>
<td>
<input type="submit" name="Submit" value="Skicka">
</td>
</tr>
</table>
</form>
</body>
</html>
ASP filen som skicka mailen:
sendmail.asp:
<% @language="vbscript" %>
<% Option Explicit %>
<%
Response.Buffer = True
' Variable Declaration
'---------------------
Dim oConn ' as ADODB.Connection
Dim sMyBody ' as String
Dim sMySubject ' as String
sMyBody = Request.Form("meddelande")
sMySubject = Request.Form("amne")
' Create db-conn object
'----------------------
Private Function CreateDBConn()
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Provider = "Microsoft.Jet.OLEDB.4.0"
oConn.ConnectionString = "Data Source=" & Server.MapPath("/dbase/newsletter2.mdb")
End Function
' Destroy db-conn object
'-----------------------
Private Function DestroyDBConn()
Set oConn = nothing
End Function
' Send Newsletter
'----------------
Private Sub myJmail(mySMTPserver, myMail, mySubject, myBody)
Dim rs ' as adodb.recordset
Dim strSQL ' as string
Dim oMail ' as Jmail.SMTPmail
Dim toMail ' as string
' sql query to grab all emails from database
'-------------------------------------------
strSQL = "SELECT SubscriberID, Email FROM Subscribers"
CreateDBConn()
oConn.Open
' Create mail-object
'-------------------
Set oMail = Server.CreateObject("Jmail.SMTPMail")
oMail.LazySend = True
oMail.ServerAddress = mySMTPServer
oMail.Sender = myMail
oMail.Subject = mySubject
oMail.AddRecipient myMail
Set rs = oConn.Execute(strSQL)
If Not rs.EOF or rs.BOF Then
Do Until rs.EOF or rs.BOf
oMail.AddRecipientBCC rs("Email")
rs.MoveNext
Loop
End If
Set rs = nothing
oMail.Body = myBody
oMail.AddHeader "Originating-IP: ", Request.ServerVariables("REMOTE_ADDR")
oMail.Execute
Set oMail = nothing
oConn.Close
DestroyDBConn()
End Sub
Call myJmail("din.mail.server","din.mail@adress",sMySubject,sMyBody)
%>
<html>
<head>
<title>zElist</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF">
<div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Mailen
har nu skickats. </font></b></div>
</body>
</html>
som du ser ... ingen avancerad layout ;o
men hoppas att den funkar med din db ...
cya,
PatrikB
<redigerat>
Ändra på raden som börjar med:
Call myJmail(".....
så att server adressen och din mail stämmer ....
</redigerat>
------------------
=================================
** ZWGdesign **
=================================
[Redigerat av PatrikB den 08 aug 2000]
[Redigerat av PatrikB den 08 aug 2000]
Nope! Det funkar inte alls :(
<% @language="vbscript" %>
<% Option Explicit %>
<%Response.Buffer = True
' Variable Declaration
'---------------------
Dim oConn ' as ADODB.Connection
Dim sMyBody ' as String
Dim sMySubject ' as String
sMyBody = Request.Form("meddelande")
sMySubject = Request.Form("amne")
' Create db-conn object
'----------------------
Private Function CreateDBConn()
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Provider = "Microsoft.Jet.OLEDB.4.0"
oConn.ConnectionString = "Data Source=" &
Server.MapPath("../../cgi-bin/newsletter2.mdb"
EndFunction
' Destroy db-conn object
'-----------------------
Private Function DestroyDBConn()
Set oConn = nothingEnd Function
' Send Newsletter
'----------------
Private Sub myJmail(mySMTPserver, myMail, mySubject, myBody)
Dim rs ' as adodb.recordset
Dim strSQL ' as string
Dim oMail ' as Jmail.SMTPmail
Dim toMail ' as string
' sql query to grab all emails from database
'-------------------------------------------
strSQL = "SELECT SubscriberID, Email FROM Subscribers" CreateDBConn()
oConn.Open
' Create mail-object
'-------------------
Set oMail = Server.CreateObject("Jmail.SMTPMail")
oMail.LazySend = True
oMail.ServerAddress = mySMTPServer oMail.Sender = myMail
oMail.Subject = mySubject
oMail.AddRecipient myMail
Set rs = oConn.Execute(strSQL)
If Not rs.EOF or rs.BOF Then Do Until rs.EOF or rs.BOf
oMail.AddRecipientBCC rs("Email")
rs.MoveNext
Loop
End If
Set rs = nothing
oMail.Body = myBody
oMail.AddHeader "Originating-IP: ", Request.ServerVariables("REMOTE_ADDR")
oMail.Execute
Set oMail = nothing
oConn.Close
DestroyDBConn()End Sub
Call
myJmail("mail.envikenrecords.com","webmaster@envikenrecords.com",sMySubject,sMyBody
)%>
<html>
<head>
<title>zElist</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF">
<div align="center">
<b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Mailen har nu skickats.
</font></b>
</div>
</body>
</html>
Detta generarade ett:
HTTP 500 - Internt serverfel
Internet Explorer
i sendmail.asp
Jag misstänker att det är nått skumt med dbkopplingen!?!?!
Så här funkade det att få kontakt med db förut:
<% Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../../cgi-bin/newsletter2.mdb")
Visa = "SELECT * FROM Subscribers ORDER BY Email"
set RecSet=Connect.Execute(Visa)
antal = "SELECT COUNT(*) as antal from Subscribers"
set RecSet2=Connect.Execute(antal)
%>
Eller är det nått sånt där dsntjafs man måste greja nu? ;)
Använd "kod" taggar om du publicerar fler kodexempel då det är lättare att kopiera och klistara in dem.. ;)
------------------
<A HREF="http://www.lifestyleshop.nu/bire" TARGET=_blank>CTS / AA / CD / OH / RD / SD / TR / MR</A>
[Redigerat av Bire den 08 aug 2000]
Hur ser koden ut nu, efter vårat samtal? :)
------------------
PC-älskare prasslar i säven, och har malt i ryggen
www.webeye.nu
Vilken kategori spel tycker du mest om?
Efter mycket om & men så kom vi iaf så här långt att ETT mail skickas och det går till den adress som ligger i strängen:
Call myJmail("mail.envikenrecords.com","hej@upp.se",sMySubject,sMyBody)%>
Det skrivs ut 5st @ och inga felmeddelanden :(
Vad kan vara snett nu då ;)
<% @language="vbscript" %>
<% Option Explicit%>
<%Response.Buffer = True
' Variable Declaration
'---------------------
Dim oConn ' as ADODB.Connection
Dim sMyBody ' as String
Dim sMySubject ' as String
sMyBody = Request.Form("meddelande")
sMySubject = Request.Form("amne")
' Create db-conn object
'----------------------
Private Function CreateDBConn()
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../../cgi-bin/newsletter2.mdb")
End Function
' Destroy db-conn object
'-----------------------
Private Function DestroyDBConn()
Set oConn = nothing
End Function
' Send Newsletter
'----------------
Private Sub myJmail(mySMTPserver, myMail, mySubject, myBody)
Dim rs ' as adodb.recordset
Dim strSQL ' as string
Dim oMail ' as Jmail.SMTPmail
Dim toMail ' as string
' sql query to grab all emails from database
'-------------------------------------------
strSQL = "SELECT SubscriberID, Email FROM Subscribers"
CreateDBConn()
' Create mail-object
'-------------------
Set oMail = Server.CreateObject("Jmail.SMTPMail")
oMail.LazySend = True
oMail.ServerAddress = mySMTPServer
oMail.Sender = myMail
oMail.Subject = mySubject
oMail.AddRecipient myMail
Set rs = oConn.Execute(strSQL)
If Not rs.EOF or rs.BOF Then
Do Until rs.EOF or rs.BOf
Response.write "@"
oMail.AddRecipientBCC rs("Email")
rs.MoveNext
Loop
End If
Set rs = nothing
oMail.Body = myBody
oMail.AddHeader "Originating-IP: ", Request.ServerVariables("REMOTE_ADDR")
oMail.Execute
Set oMail = nothing
oConn.Close
DestroyDBConn()
End Sub
Call myJmail("mail.envikenrecords.com","hej@upp.se",sMySubject,sMyBody)%>
<html>
<head>
<title>zElist</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF">
<div align="center">
<b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Mailen har nu skickats.</font></b>
</div>
</body>
</html>
------------------
<A HREF="http://www.lifestyleshop.nu/bire" TARGET=_blank>CTS / AA / CD / OH / RD / SD / TR / MR</A>
[Redigerat av Bire den 08 aug 2000]
En annan variant...
<%
Sub MailAll(strSubject,strBody,strSender,strSMPTServer)
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../../cgi-bin/newsletter2.mdb")
Visa = "SELECT Email FROM Subscribers"
set RecSet=Connect.Execute(Visa)
Set oMail = Server.CreateObject("Jmail.SMTPMail")
oMail.LazySend = True
oMail.ServerAddress = strSMTPServer
oMail.Sender = strSender
oMail.Subject = strSubject
if not RecSet.eof then
do until RecSet.eof
oMail.AddRecipientBCC RecSet(0)
RecSet.Movenext
loop
oMail.Body = strBody
oMail.Execute
end if
Set oMail=Nothing
Connect.Close
Set Connect=Nothing
End Sub
%>
PatrikB: Testade precis att skriva ut rs och mailadresserna skrivs ut så här:
webmaster@upp.seseg@upp.sebire@upp.sestygg@upp.sebire@telia.com
Ett mail går iväg och det hamnar hos: hej@upp.se
Call myJmail("mail.envikenrecords.com","hej@upp.se",sMySubject,sMyBody)%>
Emission: Nu är jag ännu mer förvirrad ;)
------------------
<A HREF="http://www.lifestyleshop.nu/bire" TARGET=_blank>CTS / AA / CD / OH / RD / SD / TR / MR</A>
[Redigerat av Bire den 08 aug 2000]