Gå til innhold

[Løst][VB 2008] Sjekke om en tekstbox inneholder mail som ikke er lov.


Anbefalte innlegg

Hei!

 

Det har seg slik at jeg har laget en kontakt meg funksjon.

Den virker feil fritt. Men for å hindre spam vil jeg lage en funksjon som laster ned en tekstfil (det får jeg til) men den skal også lese den opp mot en tekstboks.

Det vil si: Hvis tekstbox1 inneholder [email protected] så vil ikke mailen bli sendt fordi den mailen er i en tekstfil.

Som sjekkes opp mot tekstboksen.

Koden jeg bruker:

		Dim MyMailMessage As New System.Net.Mail.MailMessage
	Try
		MyMailMessage.From = New Net.Mail.MailAddress(txtFrom.Text)
		MyMailMessage.To.Add("*minmail*")
		MyMailMessage.Subject = combobox1.SelectedItem
		MyMailMessage.Body = rtbMsg.Text

		Dim smtp As New System.Net.Mail.SmtpClient("smtp.live.com")
		smtp.Port = 587
		smtp.EnableSsl = True
		smtp.Credentials = New System.Net.NetworkCredential("*minmail*", "*mitt passord*")
		rtbMsg.Text = ""
		MsgBox("Thank you for using this function")
		smtp.Send(MyMailMessage)
	Catch ex As Exception
		MsgBox("Error, cant send mail")
	End Try

 

Neste ting jeg vil gjøre er å sjekke om mailen er skrevet riktig inn. Vet du kan gjøre det i PHP med regex. Finnes det noe slikt for VB.net?

Den må inneholde @ og de mest kjente slutt formatene: .com, .org, .no, .net, .eu, .gov, .co.uk, .se, .dk, .de, .au

Endret av Gjest
Lenke til kommentar
Videoannonse
Annonse

Det er en egen regex klasse i .NET

 

System.Text.RegularExpressions.Regex

 

Den er forholdsvis lik den i PHP, med to unntak: du trenger ikke / i start eller slutt, og tegn som ikke er bokstaver trengs ikke å escapes.

Og en capture group med navn skrives

(?<EtNavn>.*)

ikke

(?P<EtNavn).*)

 

For hvordan Regex klassen fungerer, må du nesten lese MSDN. Den har litt flere muligheter enn preg_match og preg_replace i php.

Lenke til kommentar

Takk GeirGrusom, jeg skal se mer inn i det og regner med at det fungerer =D

Men må få til en ban fil også for å hindre spammere. Noen ideer?

 

Nesten løs:

		Dim banned As String = ""
	Dim Request As Net.HttpWebRequest = Net.WebRequest.Create("http://minside.com/filer/ban.txt")
	Dim Response As Net.HttpWebResponse = Request.GetResponse
	Dim SR As IO.StreamReader

	SR = New IO.StreamReader(Response.GetResponseStream)
	banned = SR.ReadToEnd
	SR.Close()

	If txtFrom.Text = (banned) Then
		Button1.Enabled = False
		lblBanned.Visible = True
		lblReason.Visible = True
		lblBanned.Text = ("Your e-mail has ben banned")
		lblReason.Text = ("Due to spam")
	Else
		Button1.Enabled = True
	End If

Problemet kommer da jeg har flere mailer i tekstfilen. Hvordan kan jeg løse det?

Endret av Gjest
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...