Power Apps & Automate: Sharepoint Online Rest API ile E-Mail Gönderimi
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
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
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.
Şimdi eklediğim bu adımı yakından inceleyelim:
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.
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.
Bu aşamanın son adımı olarak eğer bu gelen e-mailleri cevaplasaydık To alanında,
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
Send an HTTP request to Sharepoint adımına, PowerApps içerisinden dinamik olarak tetikleyeceğimiz alanları yerleştirelim:
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)
İ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.