BAĞLANTILARIM

Takip Edin:

0

ASP.NET C# İLE MAİL GÖNDERİRKEN BASE64 TİPİNDEKİ İMAJLARIN GÖRÜNMEMESİ

Salı, Nisan 16, 2019 / / , , , ,

C# ile mail gönderilirken eğer göndereceğiniz mail içinde base64 tipinde gömülmüş görselleriniz varsa, bu imajların alıcılar tarafından görüntülenebilmesi için AlternatifeView oluşturulabilir. Uygulamanın kullanımı aşağıdadır.

private static AlternateView ContentToAlternateView(string content)
    {
        var imgCount = 0;
        List<LinkedResource> resourceCollection = new List<LinkedResource>();
        foreach (Match m in Regex.Matches(content, "<img(?<value>.*?)>"))
        {
            imgCount++;
            var imgContent = m.Groups["value"].Value;
            string type = Regex.Match(imgContent, ":(?<type>.*?);base64,").Groups["type"].Value;
            string base64 = Regex.Match(imgContent, "base64,(?<base64>.*?)\"").Groups["base64"].Value;
            if (String.IsNullOrEmpty(type) || String.IsNullOrEmpty(base64))
            {
                //ignore replacement when match normal <img> tag
                continue;
            }
            var replacement = " src=\"cid:" + imgCount + "\"";
            content = content.Replace(imgContent, replacement);
            var tempResource = new LinkedResource(Base64ToImageStream(base64), new ContentType(type))
            {
                ContentId = imgCount.ToString()
            };
            resourceCollection.Add(tempResource);
        }
        AlternateView alternateView = AlternateView.CreateAlternateViewFromString(content, null, MediaTypeNames.Text.Html);
        foreach (var item in resourceCollection)
        {
            alternateView.LinkedResources.Add(item);
        }
        return alternateView;
    }


public static Stream Base64ToImageStream(string base64String)
    {
        byte[] imageBytes = Convert.FromBase64String(base64String);
        MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length);
        return ms;
    }


Üretilen Alternatif Görünümün mail gönderim fonksiyonu içinde örnek kullanımı:
.....
mail.Priority = MailPriority.High;
mail.Subject = mailBaslik;
mail.AlternateViews.Add(alternatifGorunum);
...


Detaylı kaynak için :

https://stackoverflow.com/questions/39407474/add-attachment-base64-image-in-mailmessage-and-read-it-in-html-body

0

SHAREPOINT 2013 FLOW (AKIŞ) HTTP POST İLE DIŞARIDAN TETİKLEME

Perşembe, Ocak 17, 2019 / /

Bu işlem için öncelikle HttpRequest ile başlatılan ve methodu POST olan bir flow oluşturmak gerekmekte.

Flow'u oluşturduktan sonra Flow'un adresi yani url bilgisi alınır. Kodlarımızdan istekte bulunurken isteği bu Flow'a yapacağımızdan flow url adresi önemli.

Testler için Postman programı kullanılabilir.

Genel mantığı Flow'a url nin devamında Flow'da kullanılacak parametreler eklenerek kullanılabileceği gibi, Sharepoint'te yer alan bir listenin sadece satır ID bilgisi gönderilerek Flow'un devamında yani koşullarında o listenin tüm bilgileri kullanılabilir. Burada önemli olan Flow koşullarını oluştururken ihtiyaç olan bilgilerin tamamının Url'deki parametlerden mi yoksa tıklanmış listenin satırının ID si başlangıç olarak alınıp tüm bilgileri listelerden çekmek mi olduğudur.

Detaylı anlatım için :

https://www.about365.nl/2018/11/13/securing-your-http-request-trigger-in-flow/
https://blog.portiva.nl/2018/10/22/custom-actionable-messages-with-microsoft-flow-part-2-getting-the-response/
http://www.techwithnakkeeran.com/2018/05/creating-office-365-sharepoint-custom.html
https://sergeluca.wordpress.com/2017/03/16/invoke-a-flow-from-another-sharepoint-flow-step-12-tutorial/
https://elbruno.com/2017/02/01/flow-how-to-invoke-a-flow-from-an-external-app-using-http-request/
https://flow.microsoft.com/en-us/blog/call-flow-restapi/

0

SHAREPOINT 2013 LİSTEYE (TABLOYA) JSON BUTON EKLEME

Perşembe, Ocak 17, 2019 / /

Sharepoint 2013'te listeye Add Column seçeneği ile yeni bir sütun eklenerek aşağıdaki kod ile özel bir buton oluşturulabilir.

Aşağıdaki örnek tıklandığında bir flow tetiklemektedir. ID bölümüne tetiklenecek flowun ID bilgisi yazılmalıdır.

{
    "$schema": "https://developer.microsoft.com/json-schemas/sp/column-formatting.schema.json",
    "elmType": "span",
    "style": {
        "color": "#0078d7"
    },
    "children": [
    {
        "elmType": "span",
        "attributes": {
            "iconName": "Flow"
        }
    },
    {
        "elmType": "button",
        "style": {
            "border": "none",
            "background-color": "transparent",       
            "color": "#0078d7",   
            "cursor": "pointer"
        },
        "txtContent": "Send to Manager",
        "customRowAction": {
            "action": "executeFlow",
            "actionParams": "{\"id\": \"183bedd4-6f2b-4264-855c-9dc7617b4dbe\"}"
        }         
    }       
  ]
}


Detaylı bilgi için : https://docs.microsoft.com/en-us/sharepoint/dev/declarative-customization/column-formatting

SON YORUMLAR