Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Artiklar / Titel på artikeln

Bygg en mailingtjänst

Postad 2002-01-15 av Pelle Johansson i sektionen ASP.NET, C#, Okategoriserat med 1 Kommentarer | Läst av: 3877, Betyg: 80%

Förord

Det är många som frågat om hur man skriver en mailinglista och jag tänkte försöka förklara hur man skulle kunna göra det. I denna artikel använder jag två formulär, ett registreringsformulär och ett administrativt verktyg för att kunna göra mailutskicket. Tänk på: den ljusgråa koden på sidorna visar bara vart den aktuella koden skall in, så kopiera inte hela sidorna och tro att det skall fungera direkt.
Innehåll
  » Godkänn inte dubletter
  » Adderar posten till databasen
  » Bygg ett administrationsformulär
  » Teknik för att posta till alla
  » Avslutningsvis
Vi börjar med formuläret
Här har jag ritat upp ett enkelt formulär i html där det finns tre val, namn, epost samt en checkbox om man vill ha prenumeration eller inte. Börja med att designa upp en sida innehållande dessa delar och kalla sidan mail.asp:







Prenumerera























namn:
epost:
reklam:








Nu är det dags att börja titta på hur vi skall lagra den information som användarna skriver. Vi tar en access-databas som du kanske redan har och skapar en ny tabell i den. Tabellen döper vi till Mailinglist och lägger till följande fält:


Id, räknare
Name, text 50
Email, text 50
Accept, (ja/nej)


Nu när databasen är färdig så är det dags att börja skriva den programkoden som adderar en post när besökaren lägger in sin information.


Godkänn inte dubletter

Innan vi fortsätter så skall vi kontrollera att personens mailadress inte redan finns i tabellen så det bara finns unika poster. Vi skulle kunna sätta en unikflagga på fältet för email men för att slippa felhantering i ASP så gör vi istället på detta sätt.

Vi börjar med att ta reda på om submit-knappen är tryckt, därefter börjar vi med att ställa en sql-fråga till databasen för att kolla om den angivna mailadressen redan finns.


<%
Set Con = Server.CreateObject("ADODB.Connection")
Con.Open "min_dsn"

btn = LCase(Request("btn"))
If Btn = "prenumerera" Then

name = Request("name")
email = Request("email")
accept = Request("accept")

sql = "select email from mailinglist where email = '" & email & "'"
Set Rst = Con.Execute SQL

If Not Rst.Eof Then
Response.Write "Mailadressen finns redan i databasen"
Response.End
Else
' ... se nedan!
End If

End If

Set Con = Nothing

%>





Prenumerera



Adderar posten till databasen

Om inte mailadressen fanns så adderar vi posten till databasen. Detta gör vi med ett sql-script. Här ställer vi även om flaggan för accept så det blir J eller N som behövs i accessdatabasens ja/nej fält.



If Not Rst.Eof Then
Response.Write "Mailadressen finns redan i databasen"
Response.End
Else

if accept = "1" then status = "J" else status = "N"
sql = "insert into mailinglist (name, email, accept) values(" & _
"'" & name & "'," & _
"'" & email & "'," & _
"'" & status & "',"

con.execute sql

End If


Nu har vi lyckats addera posten och det är dags att börja titta på hur vi skall göra för att kunna skicka ett mail till alla dom som nu har status = J och finns i tabellen.


Bygg ett administrationsformulär

Här är det nu dags att skriva ett brev och sedan posta det till alla dom som vill ha det. Vi börjar med att göra en ny html-sida som innehåller en textruta, en textbox samt en submit-knapp för att kunna posta mailet. Klistra in följande htmlkod och döp sidan till send.asp.







Maila mig



















Rubrik:
Meddelande:









Teknik för att posta till alla

Innan du använder CDONTS så bör du förvissa dig om att SMTP-tjänsten är konfigurerad i IIS. Om du är osäker på något så ta kontakt med din webbansvarige.

Vi börjar med att öppna databasen, välja ut alla poster ur tabellen som följer kriteriet att dom vill ha mail och sedan så loopar vi igenom posterna. För varje post så skapas ett mail och skickas. När du nu postar till alla användare så är det så att man måste för varje mail frigöra cdonts-objektet för annars så går det inte iväg korrekt.


<%

Set Con = Server.CreateObject("ADODB.Connection")
Con.Open "min_dsn"

btn = LCase(Request("btn"))
If Btn = "skicka" Then

subject = Request("subject")
message = Request("message")

sql = "select name, email from mailinglist where accept = 'J' "
Set Rst = Con.Execute SQL

If Not Rst.Eof Then
Do While Not Rst.Eof

antal = antal + 1

Set cdonts = Server.CreateObject("CDONTS.NewMail")
cdonts.from = "jag@min_server.se"
cdonts.to = rst("email")
cdonts.subject = subject
cdonts.message = message
cdonts.send

set cdonts=nothing

Rst.MoveNext
Loop

Response.Write "Mailet skickades till " & antal & " mottagare."

Else
Response.Write "Det finns inga prenumeranter som vill ha brev ännu!"
End If

End If

Set Con = Nothing

%>








Avslutningsvis

För att jag skall kunna veta vad ni tycker om kursen så ber jag dig rösta uppe till höger. Skicka gärna ett iMail om du vill kommentera något som är felaktigt eller du tycker borde förtydligas ytterligare.

Upp

1 Kommentarer


  1. Jonas Boman
    18 maj 2007

    Är inte att rekommendera att göra en loop när man har många (>1000) adresser. Webbhotellen tycker inte om det heller då det är "onödig" belastning på webbservern. Jag skall skriva en artikel om hur man skapar en subrutin för snabb mailhantering.

Skriv en kommentar på artikeln

Ditt betyg på artikeln



Kommentar:





Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 159
27 952
271 704
1 588
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies