C# ile Aktivasyon Maili Gönderme - Gmail Altyapısı

Günümüzde bir siteye üye olma aşamasında üyelik işleminin tamamlanabilmesi için bir mail gelir ve o maile göre işleme devam edilmesi gerekir. Bu tip maillere aktivasyon maili adı verilir.

C# ile aktivasyon maili gönderen aşağıdaki SendActivationMail metodunda üyenin mailini memberMail parametresiyle olarak alır. İlk satırlarda aktivasyon linkinde Code query stringine atanacak altı haneli rastgele bir kod üretecek. code adındaki değişkene atanacaktır.

senderMail ve senderPassword değişkenlerinde Google mail adresiniz ve uygulama parolası burada tanımlanır. Gönderen mail ve şifre olarak düşünebilirsiniz. 

try bloğunda üyenin aktivasyon işlemini yapacağı link activationLink değşkenine atanmıştır. Bu link, QueryString mantığı ile rastgele üretilen kodu eklemiştir. Üye, gelen maildeki bu linke giderek aktivasyon işlemini tamamlayacaktır.

MailMessage sınıfı türünden message nesnesi oluşturduk ve constructor'da maile ait aşağıdaki parametreler tanımlanmıştır.

from: Gönderen - fromMail değişkeni
to: Alıcı - memberMail parametresi
subject: Konu - "Onay Kodu"
body: İçerik - "Üyeliğinizin onaylanması için bu adresten aktivasyon işleminizi yapabilirsiniz<br/>" + activationCode

IsBodyHtml özelliğini true olarak ayarlayarak bir mailde HTML etiketli içerik gönderilebilir.

SmtpClient bir mail gönderme protokolüdür.

Gmail ile mail gönderimi yapabilmek için bazı ayarları yapmamız gerekir. 

Uygulama Şifresi, güvenliği düşük bir uygulamaya veya bir cihaza Google Hesabınıza erişmek için izin veren 16 haneli bir şifre kodudur. Uygulama Şifreleri yalnızca "2 Adımlı Doğrulama"'nın açık olduğu hesaplarla kullanılabilir. 

Bu ayarlardan bahsettiğim yazıma aşağıdaki linkten ulaşabilirsiniz.


Port
özelliği ile, Smtp sunucusuna erişelecek port numarasını belirlenir. Gmail için 587'dir
Host özelliği ile, Smtp sunucusunun adresi belirlenir. Gmail için smtp.gmail.com'dur.
EnableSsl özelliği ile, Smtp sunucusuna bağlanılacak protokol belirlenir. Eğer değer true ise httpsfalse ise http protokolünü kullanır.

NetworkCredential sınıfında constructor'da Gmail adresi ve Gmail uygulama şifresi tanımlanır. (senderMail ve senderPassword değişkenleri)

son olarak smtp.Send() metodu ile mailimizi göndeririz. Kodumuzun en son hali aşağıdaki gibidir.

Keyifli ve faydalı olmasını umarak, çalışmalarınızda kolaylıklar diliyorum :) 

Yorumlar