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.
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.
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 https, false 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.
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.
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 https, false 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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public string SendActivationMail(string memberMail) | |
{ | |
Random rnd = new Random(); | |
string characterList= "ABCDEFGHIJKLMNOPRSTUVYZWX0123456789"; | |
string code = ""; | |
for (int i = 0; i < 6; i++) | |
{ | |
code += characterList[rnd.Next(characterList.Length)]; | |
} | |
try | |
{ | |
string activationLink = "https://www.google.com/?Code=" + code; | |
string fromMail = "fromMail"; //Activation mail will send from | |
MailMessage message = new MailMessage(fromMail, memberMail, "Onay Kodu", "Üyeliğinizin onaylanması için bu adresten aktivasyon işleminizi yapabilirsiniz<br/>" + activationLink ); | |
message.IsBodyHtml = true; | |
SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587); | |
string senderMail = "senderMail"; //From Gmail mail adress | |
string senderPassword = "applicationPassword"; //Created from Google Accounts | |
smtp.Credentials = new NetworkCredential(senderMail, senderPassword); | |
smtp.EnableSsl = true; | |
smtp.Send(message); | |
return code; | |
} | |
catch (Exception ex) | |
{ | |
new Exception("Onay Kodu Gönderiminde Hata" + ex.Message); | |
} | |
return code; | |
} |
Keyifli ve faydalı olmasını umarak, çalışmalarınızda kolaylıklar diliyorum :)
Yorumlar
Yorum Gönder