Avatar billede remo27 Nybegynder
03. september 2003 - 23:37 Der er 24 kommentarer og
1 løsning

Sender et nyhedsbrev når der er uploadet til databasen

Hejsa...

Jeg er ved at lave en et lille sommerhus portal projekt.

Jeg er støt ind i nogle problemer jeg ikke selv kan løse.

Når man tilmelder sit sommerhus, skal der ske følgende.

sommerhus data'en kommer i en DB, (jeg har formularen + upload formularen til DB)

1) Der skal sendes en mail ud, hver gang et nyt sommerhus bliver tilmeldt.

2) Personens Navn + Email skal i en tabel som der bliver sendt til når der kommer et nyt sommerhus. ( jeg har en tabel i min db,) da jeg har et simpelt nyhedsbrev system hvor fra jeg også vil sende Nyhedsbreve ud om hvad der sker på siden.

Hvem kan hjælpe mig, hvis det er svært at forstå skal jeg gerne prøve at beskrive det mere grundit..

/Remo 27
Avatar billede netro Nybegynder
03. september 2003 - 23:51 #1
Sådan her f.eks. (med ASPmail):

====================================================

<html>
<head>
</head>
<body>

<form method="post" action="din_side.asp">
Besked:<br><textarea name="besked"></textarea><br><br>
<input type="submit" value="Send mail">
</form>

<%
If Request.ServerVariables("Request_Method") = "POST" Then

    Set rs = Conn.Execute("Select Bruger, Email From Tabel")
    While Not rs.EOF

      Set AspMail = Server.CreateObject("SMTPsvg.Mailer")
      AspMail.FromName = "Dit navn"
      AspMail.FromAddress = "din@mailadresse.dk"
      AspMail.AddRecipient rs("Bruger"), rs("Email")
      AspMail.Subject = "Nyhed d. " & Date
      AspMail.BodyText = "Hej " & rs("Bruger") & "!" & vbCrlf & vbCrlf & Request.Form("besked")

    'Mailserver
    AspMail.RemoteHost = "mail.domaene.dk"

    If AspMail.SendMail Then
        Response.Write "Mail sendt til " & rs("Bruger") & "<br>"
    Else
        Response.Write "Der opstod følgende fejl: " & AspMail.Response & "<br>"
    End If

    Set AspMail = Nothing

    rs.MoveNext
    Wend

End If
%>

</body>
</html>
Avatar billede webcreator Nybegynder
03. september 2003 - 23:51 #2
Hej.

Du kan, lige efter at dataet indsættes i din database i koden, indsætte flg :

$modtager = "hej@domain.dk";
$overskrift = "Nyt sommerhus tilmeldt";

$besked = "
Hej alle.

Så er endnu et sommerhus blevet tilmeldt. Denne gang bla blag blah
";

$afsender = "mig@sommerhuset.dk";
$svar_adr = "mig@sommerhuset.dk";

mail("$modtager", "$overskrift", "$besked", "From: $afsender\nReply-to: $svar_adr");


Hvis noget kræver yderligere forklaring, så sig til :)
Avatar billede webcreator Nybegynder
03. september 2003 - 23:51 #3
(Undskyld. Troede det var PHP :o(  )
Avatar billede remo27 Nybegynder
03. september 2003 - 23:53 #4
webcreator>> Nope asp. :O)

Netro >> Jmail. please.
Avatar billede remo27 Nybegynder
03. september 2003 - 23:54 #5
Netro>> jeg skulle mene at have koderne liggende, men det er lige med at sætte dem sammen så det funger.
Avatar billede netro Nybegynder
03. september 2003 - 23:57 #6
<html>
<head>
</head>
<body>

<form method="post" action="din_side.asp">
Besked:<br><textarea name="besked"></textarea><br><br>
<input type="submit" value="Send mail">
</form>

<%
If Request.ServerVariables("Request_Method") = "POST" Then

    Set rs = Conn.Execute("Select Bruger, Email From Tabel")
    While Not rs.EOF

      Set JMail = Server.CreateObject("JMail.SMTPMail")
      JMail.SenderName = "Dit navn"
      JMail.Sender = "din@mailadresse.dk"
      JMail.AddRecipientEx rs("Email"), rs("Bruger")
      JMail.Subject = "Nyhed d. " & Date
      JMail.Body = "Hej " & rs("Bruger") & "!" & vbCrlf & vbCrlf & Request.Form("besked")

    'Mailserver
    JMail.ServerAddress = "mail.domaene.dk"
   
    JMail.Execute
    Set JMail = Nothing

    rs.MoveNext
    Wend

End If
%>

</body>
</html>
Avatar billede netro Nybegynder
04. september 2003 - 00:00 #7
Prøv at vis mig stedet, hvor data for det nye hus indsættes. Og giv mig navnet og kolonnenavnene for tabellen med brugere.
Avatar billede remo27 Nybegynder
04. september 2003 - 00:05 #8
skulle lige til det *GG*

***** tilmeld_ac.asp *****  tilmelder sommerhus

<%
' Declaring variables
Dim name, email, country, comments, data_source, con, sql_insert

' A Function to check if some field entered by user is empty
Function ChkString(string)
  If string = "" Then string = " "
  ChkString = Replace(string, "'", "''")
End Function

' Receiving values from Form
sommerhusnavn = ChkString(Request.Form("sommerhusnavn"))
adresse = ChkString(Request.Form("adresse"))
postnr = ChkString(Request.Form("postnr"))
city = ChkString(Request.Form("city"))
amt = ChkString(Request.Form("amt"))
navn = ChkString(Request.Form("navn"))
tlf = ChkString(Request.Form("tlf"))
email = ChkString(Request.Form("email"))
info = ChkString(Request.Form("info"))
dato = ChkString(Request.Form("dato"))
emne = ChkString(Request.Form("emne"))
billede = ChkString(Request.Form("billede"))
data_source = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("som4u.mdb")
sql_insert = "insert into sommerhus (sommerhusnavn, adresse, postnr, city, amt, navn, tlf, email, info, dato, emne, billede ) values ('" & sommerhusnavn & "', '" & adresse & "', '" & postnr & "', '" & city & "', '" & amt & "', '" & navn & "', '" & tlf & "','" & email & "', '" & info & "', '" & date & "', '" & emne & "', '" & billede & "' )"
' Creating Connection Object and opening the database
Set con = Server.CreateObject("ADODB.Connection")
con.Open data_source
con.Execute sql_insert
' Done. Close the connection
con.Close
Set con = Nothing
Response.redirect "default.asp?emne=sommerhus&id=<%=Query1('id')"
%>

Navn + Email skal vidre i en tabel som hedder mailingliste som ligger i db. som4u.db

og de personer som ligger i mailinglisten skal så have en mail hver gang et nyt sommerhus komemr til
Avatar billede netro Nybegynder
04. september 2003 - 00:14 #9
Tilføj følgende lige inden du lukker forbindelsen:


Set rs = con.Execute("Select Navn, Email From Mailingliste")
While Not rs.EOF

      Set JMail = Server.CreateObject("JMail.SMTPMail")
      JMail.SenderName = "Dit navn"
      JMail.Sender = "din@mailadresse.dk"
      JMail.AddRecipientEx rs("Email"), rs("Navn")
      JMail.Subject = "Nyt sommerhus: " & sommerhusnavn
      JMail.Body = "Hej " & rs("Navn") & "!" & vbCrlf & vbCrlf & info

      'Mailserver
      JMail.ServerAddress = "mail.domaene.dk"
   
      JMail.Execute
      Set JMail = Nothing

      rs.MoveNext
Wend
Avatar billede netro Nybegynder
04. september 2003 - 00:16 #10
Hvad er idéen i den lille funktion, du kalder for hver variabel?
Avatar billede netro Nybegynder
04. september 2003 - 00:17 #11
- altså at den indsætter et mellemrum...?
Avatar billede remo27 Nybegynder
04. september 2003 - 00:20 #12
Netro>>ikk forstået ??
Avatar billede netro Nybegynder
04. september 2003 - 00:21 #13
If string = "" Then string = " " ?
Avatar billede remo27 Nybegynder
04. september 2003 - 00:28 #14
Spørg mig ikk' jeg er ikke en haj til asp, det er noget
jeg har fundet og klippe klistret.
Avatar billede netro Nybegynder
04. september 2003 - 00:30 #15
Okay, så synes jeg, du skulle droppe den linie. Den giver ingen mening.

Virker det, jeg gav dig?
Avatar billede remo27 Nybegynder
04. september 2003 - 00:33 #16
næsten, jeg mangler bare at navn og email bliver smidt over i tabellen mailingliste i databsen
Avatar billede remo27 Nybegynder
04. september 2003 - 00:34 #17
kan jeg slette det her: 

' A Function to check if some field entered by user is empty
Function ChkString(string)
  If string = "" Then string = " "
  ChkString = Replace(string, "'", "''")
End Function
Avatar billede netro Nybegynder
04. september 2003 - 00:37 #18
Nej, kun linien med If string = "" Then string = " "
Den anden er god nok.

Okay - så laver du en normal insert med navn og email lige efter nyhedsbrevet er udsendt (hvis ikke brugeren selv skal have en).
Avatar billede netro Nybegynder
04. september 2003 - 00:38 #19
Ny funktion:

Function ChkString(string)
  ChkString = Replace("" & string, "'", "''")
End Function
Avatar billede remo27 Nybegynder
04. september 2003 - 00:41 #20
Ææææh Det der insert med navn og mail er total sort snak, med hvordan det skal laves
Avatar billede netro Nybegynder
04. september 2003 - 00:44 #21
Okay, jeg troede selv du havde lavet det andet. Men så får du det lige her:

con.Execute("Insert Into Mailingliste(Navn, Email) Values('" & ChkString(navn) & "', '" & ChkString(email) & "')")

- og det kan du indsætte enten før eller efter, mails'ne sendes.
Avatar billede netro Nybegynder
04. september 2003 - 00:46 #22
Hvad hedder tabellen med din mailingliste?
Avatar billede remo27 Nybegynder
04. september 2003 - 00:48 #23
tabellen hedder mailingliste og ligger i db som4u  hvor der er 3 felter id, navn og email
Avatar billede remo27 Nybegynder
04. september 2003 - 00:55 #24
Nu spiller det 1000%

Kære Netro, jeg ved ikke hvordan jeg skal takke dig nok gange, du har hjulpet mig Med at løse et kæmpe problem. Det er dejligt at vide, at der findes hjælpsome Total dygtige Asp folk her i Lille DK.

1 milliard million gange tak for hjælpen
Avatar billede netro Nybegynder
04. september 2003 - 00:57 #25
Velbekomme :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester