如何在Azure Logic App上使用Gmail附件

时间:2017-10-25 06:12:09

标签: azure gmail azure-logic-apps

我创建了一个Logic应用程序,我从Gmail帐户收到电子邮件,我想将电子邮件的附件发布到我的其余API。但我不明白我作为附件得到哪种类型。我已经看到:如果我使用Outlook.com触发器,我会得到一个base64String,但是从Gmail我得到了别的东西。 是否有使用Gmail附件的示例。

enter image description here

2 个答案:

答案 0 :(得分:2)

感谢输入SahadevSinh。我改变了我的工作流程: enter image description here

在我的终端中,我这样做:

 public async System.Threading.Tasks.Task<MissionOutputDto> CreateMissionFromMail(HttpRequestMessage req)
    {
        string body = await req.Content.ReadAsStringAsync();
        dynamic fileData = JObject.Parse(body);
        string email = fileData.email;
        JArray files = fileData.files;

        string fileString = null;
        string fileName = null;
        string mimeType = null;

        foreach (dynamic file in files)
        {
            fileString = file.ContentBytes;
            fileName = file.Name;
            mimeType = file.ContentType;
        }

答案 1 :(得分:1)

我必须举一个例子来告诉你如何获得gmail附件

enter image description here

1)接收电子邮件触发器:

Step 1 details

2)获取电子邮件详情:

Step 2 details

3)在HTTP请求中传递附件详细信息     Step 3 details

   [
  {
    "Name": "test (2).txt",
    "ContentBytes": "dGVzdA==",
    "ContentType": "text/plain; charset=\"US-ASCII\"; name=\"test (2).txt\"",
    "ContentId": "",
    "Size": 4
  },
  {
    "Name": "test (2) - Copy.txt",
    "ContentBytes": "dGVzdA==",
    "ContentType": "text/plain; charset=\"US-ASCII\"; name=\"test (2) - Copy.txt\"",
    "ContentId": "",
    "Size": 4
  }
]

&#34; contentbyte&#34; :是base64Strig

WebAPI更改:

您已再创建一个类来检索此附件数据

public class GmailAttechment
    {
        public string FileName { get; set; }
        public string ContentBytes { get; set; }
        public string ContentType { get; set; }

        public string ContentId { get; set; }

        public int Size { get; set; }

    }

此课程用于从您的请求中检索附件详细信息

  1. 将上述类添加到您的webapi请求参数

    公共类GetEmailDetails     {         公共字符串文件{get;组; }

        public string fileName { get; set; }
    
        public string from  { get; set; }
    
        public string mimeType { get; set; }
        **public List<GmailAttechment> GmailAttechmentList { get; set; }**
    }
    
    1. 行动示例
    2. public void GetGmailDetails(GetEmailDetails gmailDetails)         {             foreach(gmailDetails.GmailAttechmentList中的var项)             {                 //在这里你可以获得所有文件内容                 string base6String = item.ContentBytes;             }         }