Merhaba arkadaşlar bugün sizlere sharepoint online tarafında console uygulaması kullanarak ClientContext ile nasıl mail göndereceğinizden bahsedeceğim.
NOT: Sharepoint online tarafında sharepoint üzerinden mail atma işlemlerinde dışarı kullanıcılarına hiç bir şekilde mail gönderimi yapılamamaktadır. Sharepoint içinde tanımlı olan kullanıcılara sadece mail gönderimi yapılabilmektedir.
İlk olarak console uygulamamızı açıyoruz ve aşağıdaki referansları projemize ekliyoruz.
- Microsoft.SharePoint.Client – Version: 16.0.0.0
- Microsoft.SharePoint.Client.Runtime – Version: 16.0.0.0
- System.configuration – Version: 4.0.0.0
Yukarıdaki referansları ekledikten sonra ilk önce app config tarafında sharepoint tarafında sitemize bağlanacağımız bilgilerimizi statik alabilmek için site adresi kullanıcı mail adresi ve şifresini appSettings olarak ekliyoruz.
1 2 3 4 5 |
<appSettings> <add key="siteUrl" value="" /> <add key="userEmail" value="" /> <add key="userPassword" value=""/> </appSettings> |
Daha sonra Program.cs de Main içine geliyoruz ve sitemize bağlantı yapacağımız kodu ekliyoruz. Bu konuyu anlattığım makeleye ulaşmak için tıklayınız.
1 2 3 4 5 6 7 8 9 10 |
ClientContext clientContext = new ClientContext(ConfigurationManager.AppSettings["siteUrl"].ToString()); clientContext.AuthenticationMode = ClientAuthenticationMode.Default; string password = ConfigurationManager.AppSettings["userPassword"].ToString(); System.Security.SecureString passwordChar = new System.Security.SecureString(); foreach (char ch in password) passwordChar.AppendChar(ch); clientContext.Credentials = new SharePointOnlineCredentials(ConfigurationManager.AppSettings["userEmail"].ToString(), passwordChar); |
Daha sonra EmailProperties kullanarak göndereceğimiz mailin detaylarını ekliyoruz.
1 2 3 4 |
var emailp = new EmailProperties(); emailp.To = new List<string> { "yunusemrearac@yunusemrearac.onmicrosoft.com" }; emailp.Body = "Yunus Emre Araç test email"; emailp.Subject = "Yunus Emre Araç sitesi için deneme mail gönderimidir."; |
Burada to kısmında liste şeklinde yapma sebebim virgül ekleyerek birden fazla kullanıcı tanımlanabilir bir yapı olması içindir. Tüm parametre değerlerini sizin mail detaylarınız ile güncelleyebilirsiniz.
En son aşamada ise Utility SendEmail kullanarak clientcontext ve email bilgilerimizi yolluyoruz ve ExecuteQuery diyoruz.
1 2 |
Utility.SendEmail(clientContext, emailp); clientContext.ExecuteQuery(); |
Bu işlemlerden sonra uygulama tamamlanmış olacaktır ve mail gönderme işlemini yapabileceksiniz.
Kodun tamamı aşağıdaki gibidir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
ClientContext clientContext = new ClientContext(ConfigurationManager.AppSettings["siteUrl"].ToString()); clientContext.AuthenticationMode = ClientAuthenticationMode.Default; string password = ConfigurationManager.AppSettings["userPassword"].ToString(); System.Security.SecureString passwordChar = new System.Security.SecureString(); foreach (char ch in password) passwordChar.AppendChar(ch); clientContext.Credentials = new SharePointOnlineCredentials(ConfigurationManager.AppSettings["userEmail"].ToString(), passwordChar); var emailp = new EmailProperties(); emailp.To = new List<string> { "yunusemrearac@yunusemrearac.onmicrosoft.com" }; emailp.Body = "Yunus Emre Araç test email"; emailp.Subject = "Yunus Emre Araç sitesi için deneme mail gönderimidir."; Utility.SendEmail(clientContext, emailp); clientContext.ExecuteQuery(); |
Projenin çalışır halinin tamamını aşağıdan github adresimden indirip app config ve mail bilgilerini güncelleyerek kullanabilirsiniz.
İlk Yorumu Siz Yapın