Gmail Üzerinden Mail Göndermek

Merhabalar,

Gmail üzerinden mail gönderme ihtiyacı benim gibi vasat yazılımcıların karşısına sıkça çıkmaktadır.
Genelde ufak çaplı, kurumsal olmayan işlerde ihtiyaç duyduğumuz Gmail Üzerinden Mail Gönderme işi ilk kez bunu deneyenlere biraz can sıkıcı gelebilmektedir. Bu yazıda bu can sıkıcı durumun üstesinden canımızı sıkmadan gelmenin yollarını anlatacağım.

Soruları duyar gibiyim ..

  • .Net ile nasıl göndereceğim?

System.Net ve System.Net.Mail namespace lerini kullanarak SmtpClient sınıfı ile.

  • Hangi portu kullanacağım?

587 nolu portu kullacaksınız.

  • ssl kullanacak mıyız?

Evet ssl kullanacağız

Basitçe metodumuz şu şekilde olacak

public static void GmailUzerindenMailGonder(string gonderen, string alici, string konu, string icerik, string kullaniciAdi, string kullaniciSifre)

{

var client = new SmtpClient("smtp.gmail.com", 587)

{

Credentials = new NetworkCredential(kullaniciAdi, kullaniciSifre),

EnableSsl = true

};

client.Send(gonderen, alici, konu, icerik);

}

C# ile mail göndermek nekadar basit değil mi?

İşte canınızı sıkan sorunlar burada başlıyor.

Herşeyi aynen yaptım niye hata alıyorum?

Çünkü “Google Güvenliğe Önem Veriyor”

İçeriğini anlamadığımız hataların sebebi üzerinde mail göndermeye çalıştığımız gmail hesabının güvenlik ayarları.

Google ın uygulamaya koyduğu 2 seviyeli güvenlik ayarlarını yaparak ve dahiyane bir fikir olan uygulamaya özel şifre üreterek bu problemlerden kurtulabilir ve aynı zamanda güvenliğimizi de üst seviyeye çıkarabiliriz.

Bunun için

  • ilgili gmail hesabını açarak hesap ayarlarından güvenlik sekmesini açıyoruz.

Google Hesap Ayarları

Google Hesap Ayarları – Güvenlik Sekmesi

  • 2 seviyeli güvenlik özelliğini aktif etmek için hazırlanmış sihirbazı açıyoruz.

2 Seviyeli Güvenlik

  • cep telefon bilgimizi sms ile doğruluyoruz.
  • cep doğrulama işleminden sonra ilk işimiz yedek kod üretmek olmalı, çünkü cep telefonumuz yanımızda olmadığı durumlarda bu kodları kullanacağız.

Google Hesap Ayarları – Yedek Kodlar

  • ardından uygulamaya özel şifreler tabına geçerek sadece mail göndermek için kullanacağımız bir şifre üretiyoruz.
  • gmail içindeki ayarlardan POP ve IMAP ı da açmayı unutmayalım..

Gmail Ayarlar Menüsü

Gmail Ayarlar Menüsü – Yönlendirme ve Pop Ayarları

  • ve işlem tamam.

Bundan sonrası çok kolay, mail atarken gmail e oturum açarken kullandığımız şifrenin yerine uygulamaya özel oluşturduğumuz şifreyi yazarak deneyelim.. işte oldu..

Hepinize kolay gelsin, umarım yardımcı olmuştur.

 

Javascript ile html nesnelerinin yerini değiştirme

Javascript ile html nesnelerinin yerini değiştirme, yukarı aşağı kaydırma ve nesne silme işlemlerini basitçe nasıl yapabiliriz, işte size ufak bir örnek.

Başlık

<input type='text' id='baslik' name='baslik' />Değer

<input type='text' id='deger' name='deger' />

<input type='button' value='Ekle' onclick="AddItem()" />

<input type='button' value='Temizle' onclick="Clear()" />

<div id="data-list" name="data-list">

    <ul>

    </ul>

    <div id="data-list-count"></div>

</div>

function AddItem() {

    var baslik = $("#baslik").val();

    var deger = $("#deger").val();

    var dataListCount = GetCount();

    var dataListObj = $("#data-list").find("ul");

    var removeBtnText = "<a href='#' onclick='RemoveItem(event)'>Çıkar</a> ";

    var upBtnText     = "<a href='#' onclick='UpItem(event)'     >Yukarı</a> ";

    var downBtnText   = "<a href='#' onclick='DownItem(event)'>Aşağı</a> ";

    var itemText = "<li>"+dataListCount+" - " + removeBtnText + downBtnText + upBtnText + "<span class='badge'>" + deger + "</span>" + baslik + "</li>";

    dataListObj.append(itemText);

    UpdateCount();

}

function RemoveItem(e) {

    var evt = e || window.event; // this assign evt with the event object

    var current = evt.target || evt.srcElement; // this assign curr

    if($(current).parent().is("li")) {

        $(current).parent().remove();

    }

    UpdateCount();

}

function UpItem(e) {

    var evt = e || window.event; // this assign evt with the event object

    var current = evt.target || evt.srcElement; // this assign curr

    var upItem = $(current).parent().prev();



    if (upItem !== null && upItem.is("li")) {

        $(current).parent().swapWith(upItem);

    }

    UpdateCount();

}

function DownItem(e) {

    var evt = e || window.event; // this assign evt with the event object

    var current = evt.target || evt.srcElement; // this assign curr

    var downItem = $(current).parent().next();



    if (downItem !== null && downItem.is("li")) {

        $(current).parent().swapWith(downItem);

    }

    UpdateCount();

}

function Clear() {

    var baslik = $("#baslik").val();

    var deger = $("#deger").val();

    var dataListObj = $("#data-list").find("ul");

    dataListObj.empty();

    UpdateCount();

}

$.fn.swapWith = function(swap_with_selector) {

    var el1 = this;

    var el2 = $(swap_with_selector);



    if ( el1.length === 0 || el2.length === 0 )

        return;



    var el2_content = el2.html();

    el2.html(el1.html());

    el1.html(el2_content);

};

function GetCount()

{

    return $("#data-list").find("ul").find("li").length;

}

function UpdateCount() {

    $("#data-list-count").text("Toplam " + GetCount() + " seçenek");

}