Veysel Uğur KIZMAZ

Sharepoint 2010'da Ekli Mail Gönderme

28.12.2011Okunma Sayısı: 6647Kategori: Sharepoint 2010

 Sharepoint 2010’da mail gönderme işlemlerini kodla (Visual Studio tarafında) yapmamız gerektiğinde .Net’in varsayılan mail sistemi olan System.Net.Mail namespaceini kullanabileceğimiz gibi Sharepoint içerisinde hazırlanmış olan SPUtility sınıfını da kullanabiliriz.

SPUtility sınıfının mail gönderme fonksiyonundaki tek sıkıntısı ekli dosya gönderememesidir. Bu işlem gerektiği taktirde (yöntemlerden biri) System.Net.Mail namespace’i ile maili göndermektir.
Bu makalemizde System.Net.Mail namespace’i içindeki mail gönderme işlemlerinin sharepointe entegrasyonunu inceleyeceğiz.
Bu işlem için Visual Studio’da yeni bir Empty Sharepoint Project oluşturalım (Farm Solution) ve Add New Item ile yeni bir Application Page ekleyelim.
 
 
Sayfamıza bir buton ekleyelim.
<asp:ContentID="Main"ContentPlaceHolderID="PlaceHolderMain"runat="server">
 <asp:ButtonID="btMailGonder"runat="server"Text="Mail Gönder"OnClick="btMailGonder_Click" />
</asp:Content>
Mail gönder butonunun Click eventına gidip kodumuzu yazalım.
 
 
MailMessage ePosta = newMailMessage();
            ePosta.From = newMailAddress("posta@sharepointtr.net");
            //
            ePosta.To.Add("alan1@sharepointtr.net");
            ePosta.To.Add("alan2@sharepointtr.net");
            //
            ePosta.Subject = "Konu";
            //
            ePosta.Body = "İçerik";
            //
            SmtpClient smtp = newSmtpClient();
            //
            smtp.Credentials = new System.Net.NetworkCredential("posta@sharepointtr.net", "sifre");
            smtp.Port = 587;
            smtp.Host = "smtp.sharepointtr.com";
 
            using (SPSite site = newSPSite("http://siteadresi"))
            {
                using (SPWeb web = site.OpenWeb())
                {
                    SPList liste = web.Lists["Dokuman"];
                    SPListItem dokuman = liste.Items[0];
                    
                    for (int i = 0; i < dokuman.Attachments.Count; i++)
                    {
                        string dosyaYolu = dokuman.Attachments.UrlPrefix + dokuman.Attachments[i];
                        SPFile dosya = liste.ParentWeb.GetFile(dosyaYolu);
 
                        byte[] dosyaVerisi = newWebClient(){Credentials=CredentialCache.DefaultNetworkCredentials}.DownloadData(dosyaYolu);
 
                        ePosta.Attachments.Add(newAttachment(newMemoryStream(dosyaVerisi),dosya.Name));
                    }
                }
            }
            try
            {
                smtp.Send(ePosta);
            }
            catch (SmtpException ex) { }
 
 
 
Veysel Uğur KIZMAZ
Bilgisayar Mühendisi
veysel@ugurkizmaz.com
www.ugurkizmaz.com
twitter :@vukizmaz