Türkçe Karakter Kontrolcüsü

Bu başlığımızda Mail adreslerine ısrarla Türkçe karakter yazan kullanıcıları ele alacağız.

Program öncelikle girilen adresin geçerliliği kontrol ediliyor eğer bu kontrol başarıyla geçilirse 2. olarak Mail adresindeki Türkçe karakterler taranıyor.

Eğer Türkçe karakter yakalanır ise konum bilgisi paylaşılarak uyarı verilir.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net.Mail;
namespace mailkontrolcusu
{

public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}

protected void Button1_Click(object sender, EventArgs e)
{

string mailadresi = TextBox1.Text;
string sonuc = mailkontrolet(mailadresi);
Label1.Text = sonuc;
Label1.Visible = true;
if (sonuc == "Mail başarıyla gönderildi.")
{
Label1.ForeColor = System.Drawing.Color.Green;
}
else
Label1.ForeColor = System.Drawing.Color.Red;
}
static string mailkontrolet(string mailadresi) /*mail formatı kontrol*/
{
bool sonuc = IsValidEmail(mailadresi);
if (sonuc == true)
{
/* burda hata mesajı fazladan kopyalanıyor*/
string son = mailkontrolet2(mailadresi); /* mail formatında sıkıntı yok, türkçe karakter kontrolü edilecek*/
if ((son == "") || (son == null))
{

/*geçerli mail adresi*/

mailadresi=mailgonder(mailadresi);
}
else
{
mailadresi = son; /*geçersiz mail adresi hata açıklaması*/

}
}
else
{
mailadresi = "Geçersiz bir Mail adresi girdiniz.Örnek bir Mail adresi:<b> iletisim@cebraililhan.com<b>";

}

return mailadresi;

}
static string mailkontrolet2(string mailadresi)
{
char[,] dizi = new char[12, 2] {
{ 'Ö', 'O'}
,{ 'ö', 'o'}
,{ 'ç', 'c'}
,{ 'Ç', 'C'}
,{ 'İ', 'i'}
,{ 'ş', 's'}
,{ 'Ş', 'S'}
,{ 'ı', 'i'}
,{ 'ğ', 'g'}
,{ 'Ğ', 'G'}
,{ 'ü', 'u'}
,{ 'Ü', 'U'}
};
string hatalimail = "";
bool noktakontrol = false;
int i2 = 0;
foreach (char ch in mailadresi)
{
i2++;
for (int i = 0; i < 12; i++)
{
if (ch == dizi[i, 0])
{

hatalimail += hatalimail = "'<b>" + dizi[i, 0] + "</b>'" + " Geçersiz bir karakterdir, Türkçe karakter kullanmayın, lütfen " + i2 + ". karakteri '<b>" + dizi[i, 1] + "</b>' olarak düzeltin. <br>";
}

if ('.' == ch)
{
noktakontrol = true;
}

}
}

if (noktakontrol == false)
{
hatalimail += hatalimail + "Geçersiz adres, Mail adresinde <b>'.' (nokta)</b> olmalıdır.";
}

return hatalimail;
}
static bool IsValidEmail(string email)
{
try
{
var addr = new System.Net.Mail.MailAddress(email);
return addr.Address == email;
}
catch
{
return false;
}
}
static string mailgonder(string mailadresi)
{
string m_mailgonder = "";
try
{
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("mail.cebraililhan.com");
mail.From = new MailAddress("iletisim@cebraililhan.com");
mail.To.Add("gonderilcekadres@gmail.com");
mail.Subject = "Test Mail";
mail.Body = "This is for testing SMTP mail from GMAIL";

SmtpServer.Port = 587;
SmtpServer.Credentials = new System.Net.NetworkCredential("iletisim@cebraililhan.com", "sifre");
SmtpServer.EnableSsl = false;

SmtpServer.Send(mail);
m_mailgonder = "Mail başarıyla gönderildi.";
}
catch (Exception ex)
{
m_mailgonder= ex.ToString();
}
return m_mailgonder;
}
}
}

İlk Yorumu Siz Yapın

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir