Internet sitemizde ister istemez e-posta adresinden faydalanmak zorundayiz. Gerek kullanici kayitlarinda gerekse kullanicilarimizi bilgilendirmek vs. gibi islemlerde site üzerinden e-posta göndermek zorundayiz. Php ile e-posta gönderirken kendi kodu sayesinde hiç bir kullanici adi veya sifreye gerek duymadan e-posta gönderilebilir normalde. Ama hosting firmalari güvenlik sebebiyle phpnin kendi e-posta gönderme islevini kisitliyor ve kullanilamiyor. Bunun yerine smtp ile bir email adresi ve sifresi yolu ile e-posta gönderme islemi saglanabiliyor. Asp.Nette genel anlamda smpt kullanilarak e-posta gönderme islemleri saglaniyor. Peki kullanilmayan bir e-posta adresi ile sitenizden e-posta göndermek istediginizde smtp ayarlarinda e-posta sifresini nasil girecegiz. Ya direk olarak koda yazip o sekilde girmemiz gerek, ki pek tavsiye etmedigim bir yöntem ya da ben kendi sitemde e-posta sifresini veritabanina kayit ederek her e-posta servisini kullanacagim zaman veritabanindan sifreyi cekip öyle gönderim islemi yapmaktaydim. Güvenlik ayri bir tartisma konusu ama her seferinde veritabanindan çekmek siteye ayri bir yük olusturmak durumunda kaliyor. Bunlarin yerinde sifremizi webconfig dosyamizda belirterek ve vb.net kodu ile webconfig dosyamiza ulasarak sifremizi elde etme imkani saglayabiliyoruz. ilk olarak system.net.mail kütüphanemizi sitemize import ediyoruz.
Imports System.Net.Mail
sonrasinda ise e-posta gönderme kodumuzu yaziyoruz.
Private epostasifre As String = ConfigurationManager.AppSettings("emailsifre").ToString()
Try
strClientIP = Request.UserHostAddress
Dim email As New MailMessage()
Dim Host As String = "xxxxxx.okanduzgun.com"
Dim smtpUserName As String = "xxxxxx@okanduzgun.com"
Dim smtpPassword As String = epostasifre
email.From = New MailAddress("xxxxxx@okanduzgun.com", "Okan Düzgün || Basarmak Paylasmaktir...!")
Dim smtpPort As Integer = 587
email.IsBodyHtml = True
email.Subject = "Baslik"
email.Body = "içerik"
email.[To].Add(New MailAddress("Alici Adres"))
email.BodyEncoding = System.Text.Encoding.UTF8
Dim smtp As New SmtpClient(Host, smtpPort)
smtp.EnableSsl = False
smtp.Credentials = New System.Net.NetworkCredential(smtpUserName, smtpPassword)
smtp.Send(email)
Catch ex As Exception
End Try
Yukarida dikkat edilmesi gereken Private epostasifre As String = ConfigurationManager.AppSettings("emailsifre").ToString() kodu olacaktir. Bu kod ile sitemizin webconfig ayarlarindan AppSetting kisminda tanimladigimiz sifremizi çekiyoruz.
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="emailsifre" value="sifremizi yaziyoruz"/>
</appSettings>
</configuration>
yukaridaki gibide sifremizi webconfig dosyamiza tanitiyoruz ve islemi tamamliyoruz. Bu email sifresi olabilir veya farkli amaçlar ile de kullanilabilir. Görüsmek dileklerimle...