Imports System.Net
Imports System.Net.Mail
Imports System.Web.Script.Serialization
Partial Class iletisim_keso
Inherits System.Web.UI.Page
Private Sub gonder_Click(sender As Object, e As EventArgs) Handles gonder.Click
ASPPLUS_Webmail()
End Sub
Protected Sub ASPPLUS_Webmail()
'------------------------------------------
lblResult.Text = ""
Dim useGoogleRecaptcha As Boolean = True ' Bu değeri config'den alabilirsiniz
If useGoogleRecaptcha Then
' V2 Token'ını yakalama: g-recaptcha-response adıyla gelir
Dim recaptchaToken As String = Request.Form("g-recaptcha-response")
' Hata Kontrolü 1: Token boş mu? (Kullanıcı kutucuğu işaretlemedi)
If String.IsNullOrEmpty(recaptchaToken) Then
lblResult.Text = "Lütfen robot olmadığınızı doğrulayın."
Exit Sub
End If
' Hata Kontrolü 2: Token Google'da geçerli mi?
If Not VerifyRecaptcha(recaptchaToken) Then
lblResult.Text = "Robot doğrulama başarısız oldu. Lütfen tekrar deneyiniz."
Exit Sub
End If
End If
' >>> RECAPTCHA DOĞRULAMASI BAŞARILI. MAİL GÖNDERME KISMI BAŞLAR. <<<
'------------------------------------------
Dim client As New SmtpClient
Dim mail2 As New MailMessage()
client.UseDefaultCredentials = False
client.Credentials = New System.Net.NetworkCredential("sitedenmail@adanet.gen.tr", "72740204")
client.Port = "587" 'cannot be read
client.EnableSsl = vbFalse 'cannot be read
client.Host = "mail.adanet.gen.tr" 'cannot be read
mail2 = New MailMessage()
mail2.From = New MailAddress("sitedenmail@adanet.gen.tr", "KESO")
mail2.To.Add("keso@keso.org.tr")
mail2.Subject = "WEB SİTENİZDEN İLETİŞİM FORMU"
mail2.IsBodyHtml = True
Dim HTMLmessage As String
HTMLmessage = ""
HTMLmessage = HTMLmessage & "
"
HTMLmessage = HTMLmessage & "İLETİŞİM FORMU"
HTMLmessage = HTMLmessage & ""
HTMLmessage = HTMLmessage & ""
HTMLmessage = HTMLmessage & "
"
HTMLmessage = HTMLmessage & "
"
HTMLmessage = HTMLmessage & "İLETİŞİM FORMU"
HTMLmessage = HTMLmessage & "
"
HTMLmessage = HTMLmessage & ""
HTMLmessage = HTMLmessage & ""
HTMLmessage = HTMLmessage & ""
HTMLmessage = HTMLmessage & "| Gönderen | "
HTMLmessage = HTMLmessage & "" & isim.Text & " | "
HTMLmessage = HTMLmessage & "
"
HTMLmessage = HTMLmessage & ""
HTMLmessage = HTMLmessage & "| E-posta | "
HTMLmessage = HTMLmessage & "" & email.Text & " | "
HTMLmessage = HTMLmessage & "
"
HTMLmessage = HTMLmessage & ""
HTMLmessage = HTMLmessage & "| Telefon | "
HTMLmessage = HTMLmessage & "" & tel.Text & " | "
HTMLmessage = HTMLmessage & "
"
HTMLmessage = HTMLmessage & ""
HTMLmessage = HTMLmessage & "| Mesaj | "
HTMLmessage = HTMLmessage & "" & mesaj.Text & " | "
HTMLmessage = HTMLmessage & "
"
HTMLmessage = HTMLmessage & ""
HTMLmessage = HTMLmessage & "| Tarih | "
HTMLmessage = HTMLmessage & "" & Now() & " | "
HTMLmessage = HTMLmessage & "
"
HTMLmessage = HTMLmessage & ""
HTMLmessage = HTMLmessage & "| IP | "
HTMLmessage = HTMLmessage & "" & Request.ServerVariables("REMOTE_ADDR") & " | "
HTMLmessage = HTMLmessage & "
"
HTMLmessage = HTMLmessage & "
"
HTMLmessage = HTMLmessage & ""
HTMLmessage = HTMLmessage & ""
mail2.Body = HTMLmessage
Try
client.Send(mail2)
mesaj.Text = "MESAJINIZ GÖNDERİLDİ, TEŞEKKÜRLER"
tostbody.Attributes("class") = "toast-body bg-success text-white"
Dim sb As New StringBuilder()
sb.Append("")
ClientScript.RegisterClientScriptBlock(Me.GetType(), "toastScript", sb.ToString())
gonder.Enabled = "False"
gonder.Text = "GÖNDERİLDİ"
Catch ex As Exception
mesaj.Text = "MESAJINIZ GÖNDERİLEMEDİ, TEKRAR DENEYİN !!!"
tostbody.Attributes("class") = "toast-body bg-success text-white"
Dim sb As New StringBuilder()
sb.Append("")
ClientScript.RegisterClientScriptBlock(Me.GetType(), "toastScript", sb.ToString())
gonder.Enabled = "False"
gonder.Text = "GÖNDERİLEMEDİ"
End Try
End Sub
' <<< RECAPTCHA V2 DOĞRULAMA FONKSİYONU >>>
Private Function VerifyRecaptcha(recaptchaResponse As String) As Boolean
Try
' Secret key'i web.config'ten alıyoruz
Dim secretKey As String = ConfigurationManager.AppSettings("RecaptchaSecretKey")
Using wc As New WebClient()
Dim values As New NameValueCollection()
values.Add("secret", secretKey)
values.Add("response", recaptchaResponse)
' V2 API'ye POST isteği gönderimi
Dim respBytes = wc.UploadValues("https://www.google.com/recaptcha/api/siteverify", "POST", values)
Dim respString = Encoding.UTF8.GetString(respBytes)
Dim js As New JavaScriptSerializer()
Dim dict = CType(js.DeserializeObject(respString), Dictionary(Of String, Object))
' V2'de sadece "success" alanının "true" olup olmadığına bakılır.
If dict IsNot Nothing AndAlso dict.ContainsKey("success") Then
Return Convert.ToBoolean(dict("success"))
End If
End Using
Catch ex As Exception
' Ağ veya API hatası durumunda false döner.
End Try
Return False
End Function
End Class