Power Apps & Automate: Sharepoint Online Rest API ile E-Mail Gönderimi

Lütfi Dereli
4 min readMay 20, 2022

--

Bu yazıda Sharepoint Rest API yardımı ile e-mail gönderimini, Power Automate üzerinden nasıl gerçekleştirebiliriz buna değineceğiz.

Power Apps ve Power Automate yardımı ile Share Point üzerinde no-reply e-mail gönderimi

Canvas Uygulama Ekranı

Power Apps ve Automate ile Share Point Online’dan gönderilen e-maillere ait “From” alanına bakarsanız. Gönderenin yanında <noreply@sharepointonline.com> şeklinde bir ifade yer alır. Maili gönderdiğiniz kişi bu maili yanıtlamaya çalıştığında bazen bu maili gönderme işlemi istenildiği şekilde çalışmayabilir. Örnek olarak eğer geçersiz bir e-mail adresinden bu e-mail kullanıcıya ulaşmışsa, From alanında ilgili Sharepoint sitesinin sadece ismini görebiliriz, bu durumda kullanıcı maili cevaplamak istediğinde göndereceği karşı e-mail olarak To alanına bu Sharepoint sitesinin adı otomatik olarak gelir. Böyle bir kullanıcı olmadığı için de e-mail gönderme işlemi başarısız olur. Power Automate üzerinde Share Point Online REST API’sini kullanarak “To”, “From” gibi alanların özelleştirilerek nasıl daha efektif olarak kullanılabileceğine göz atacağız.

Power Automate akışını oluşturma & Sharepoint’e HTTP isteği gönderme

Power Automate Flow Oluşturma Ekranı

Flow sekmesinden manual olarak oluşturacağımız flow triggerını seçip, isimlendirdikten sonra uygulamanın Power Automate ayağına başlayabiliriz.

Bir sonraki adımımız aksiyon olarak Send an HTTP request to SharePoint seçilir. Hatırlatmak da fayda var: bu aksiyon herhangi bir premium kapasiteye tabi değildir.

Send an HTTP request to Sharepoint

Şimdi eklediğim bu adımı yakından inceleyelim:

Send an HTTP request to Sharepoint

Site Address: Kullandığımız Sharepoint listesinin yolunu verdiğimiz alandır. Soldaki ok işaretini kullanarak var olan adresi ekleyebilirsiniz.

Method: Mail gönderme işlemi yapacağımızı düşünürsek, API çağrı methodu’nun POST olması gerekiyor.

Uri: Sharepoint ile yapacağımız mail gönderme işlemine ait çağrının tanımlandığı alan.

Header: Bu alanda ihtiyacınıza uygun olarak varsa çeşitli Headers alanları belirleyebilirsiniz, bu örnek için burası boş bırakılacak.

Body: Bu alanda göndereceğimiz çağrıya ait propertyleri tanımladığımız 4 ana key-value altında inceleyebiliriz. Göndereceğimiz işlem bir mail atma fonksiyonu olacağı için mailde yer alan bileşenleri ve değerlerini bu alanda tanımladık.

Şimdi diğer adımlara geçmeden önce flow’un doğru şekilde tetiklenip, çalıştığından emin olmak için flowumuzu manuel olarak tetikleyelim.

Flow başarılı bir şekilde tamamlandı.
Body alanında tanımlanan alanlara uygun olarak e-mail ilgili kişiye ulaştı.

Gönderilen e-mailde dikkat etmeniz gereken noktalardan bir tanesi: From alanında bulunan yerde environment içerisinde var olmayan bir fake e-mail adresi olduğu için bu alan doğrudan verdiğimiz Sharepoint adresinin adı üzerinden geldi: Business Applications Team <no-reply@sharepointonline.com> Eğer bu alana body içerisinde tanımladığımız From alanına geçerli bir e-mail adresi tanımlasaydık, bu maili cevaplamak isteyen kullanıcı düzgün bir şekilde görüntüleyebilecekti.

Body alanındaki from alanını lutfi.dereli@peakup.org e-maili ile değiştirip flowumuzu tekrar çalıştıralım ve gelen mailleri karşılaştıralım.

Sistemde var olmayan fake bir mail adresi ile girilen ilk mailde, from alanı Sharepoint sitesinden gelmiş şekilde görünüyor. Var olan e-mail adresinde ise e-maili gönderen kullanıcının e-mail adresi görüntülenebilmekte.

Bu aşamanın son adımı olarak eğer bu gelen e-mailleri cevaplasaydık To alanında,

Fake e-mail adresi girildiğinde To alanı
Var olan e-mail adresi girildiğinde To alanı

Power Automate trigger’ını PowerApps ile tetikleme ve oluşturulan alanların dinamikleştirilmesi

Başta oluşturduğumuz manuel tetiklemeyi kaldırarak PowerApps ile yapacağımız işlem için gerekli olan tetikleyiciyi flowumuzun başına ekleyelim

From alanı özellikle text yerine e-mail olarak seçilmiştir.

Send an HTTP request to Sharepoint adımına, PowerApps içerisinden dinamik olarak tetikleyeceğimiz alanları yerleştirelim:

İlgili alanları yerleştirirken tek tırnak kullanılan alanları kaybetmeden yerleştirdiğinizden emin olun aksi takdirde flow bu aşamada hata verecektir.

Oluşturduğumuz flow’u canvas app içerisine dahil edip, flowu tetikleyecek olan butonun onSelect’ine aşağıdaki formülü yazalım:

‘Sendane-mailviaSPORESTApi’.Run(Concat(cmb_to.SelectedItems, “‘“ & Mail & “‘“ , “,”), cmb_from.Selected.From,txt_subject.Text,rte_body.HtmlText)

To alanına birden fazla mail adresi eklenmiştir. Bu durumda soldaki Information kısmındaki bilgiyi göz ardı edebilirsiniz.

İlgili alanlara girilen inputlara uygun olarak, To alanına girilen e-maillere göre, canvas app ile tetiklenen bu flow’un maillerini e-mail kutunuzda görebilirsiniz.

--

--

Lütfi Dereli
Lütfi Dereli

Written by Lütfi Dereli

Power Platform Developer | Digital Citizen | Data Enthusiast | TechInLove —

No responses yet