1

我有一个这样的名为 requiredCol_1 的集合,

Name      ID      ToAddress                                                        Status
Abc       123     asdfg@example.com,koldef@example.com,asdasdasfda@example.com        A        
Def       234     nanasd@example.com,asdfg@example.com                                A
Ghi       567     asdfg@example.com,asdasfg1@example.com                              A

我希望向每个用户发送电子邮件,每个用户应该只收到一封电子邮件。

要做到这一点,

我创建了一个 requiredCol_2 作为另一个集合

ToAddressUnique
asdfg@example.com
koldef@example.com
asdasdasfda@example.com
nanasd@example.com
asdasfg1@example.com

我现在已经设法缩小我的问题范围。上述集合中的每个用户 (requiredCol_2) 都会收到一封电子邮件。我的电子邮件正文将连接名称和 ID,并以与该特定电子邮件 ID 相关的列表形式。

例如,发送到 asdfg@example.com 的电子邮件将如下所示,

致:- asdfg@example.com

主题:- 请看

身体:-

单击此处并请查看以下内容,

  1. 美国广播公司 - 123
  2. 定义 - 234
  3. 吉 - 567

点击这里是一个超链接,我想通过一个变量来传递。

我是 Powerapps 和 Flow 的新手。因此,请向我解释使其工作的步骤。

这是迄今为止我在 Power Apps 中的代码 - 发送电子邮件按钮

//Create a Collection
ClearCollect(requiredCol_1 , Filter(Table1, User().Email in Lower(Allocators), Status = "A"));

//Unique List of Approvers
ClearCollect(requiredCol_2,Distinct(
    Split(
        Concat(requiredCol_1 , ToAddress, ","),
        ","),
    Result));
//Hyperlink Creation
set (hyperlinkvalue, "WWW.Google.Com");
4

1 回答 1

1

如果要发送电子邮件,可以使用其中一个连接器,例如 Outlook.com 或 Office 365(以及其他)。如果您希望电子邮件具有超链接,那么您将需要发送 HTML 电子邮件,并且您需要在您的应用程序中编写 HTML。例如,下面的代码片段显示使用 Outlook.com 连接器发送电子邮件(Office 365 的语法将相同或非常相似):

//Create a Collection
ClearCollect(
    requiredCol_1,
    Filter(Table1, User().Email in Lower(Allocators), Status = "A"));

//Unique List of Approvers
ClearCollect(requiredCol_2,Distinct(
    Split(
        Concat(requiredCol_1 , ToAddress, ","),
        ","),
    Result));

//Hyperlink Creation
Set(hyperlinkvalue, "WWW.Google.Com");

// E-mail body
Set(
    mailBody,
    Concatenate(
        "<p><a href=""",
        hyperlinkvalue,
        """>Click here</a> and kindly review the following:</p>",
        "<ol>",
        Concat(
            requiredCol_1,
            "<li>" & Name & " - " & ID & "</li>"
        ),
        "</ol>"
        ));

// Send e-mail
'Outlook.com'.SendEmail(
    Concat(requiredCol_2, Result, ","),
    "Please look at",
    mailBody,
    {
        IsHtml: true
    })

如果您希望仅在电子邮件中发送包含该电子邮件的项目,那么您需要在创建每个单独的电子邮件时过滤原始表格,如下例所示:

Set(hyperlinkValue, "www.google.com");
ClearCollect(
    distinctUsers,
    Distinct(Split(Concat(requiredCol_1, ToAddress, ","), ","), Result));
ClearCollect(
    distinctUsersWithEmail,
    AddColumns(
        distinctUsers,
        "mailBodyForUser",
        Concatenate(
            "<p><a href=""",
            hyperlinkValue,
            """>Click here</a> and kindly review the following:</p>",
            "<ol>",
            Concat(
                Filter(requiredCol_1, Result in ToAddress),
                "<li>" & Name & " - " & ID & "</li>"
            ),
            "</ol>"
        )));
ForAll(
    distinctUsersWithEmail,
    'Outlook.com'.SendEmail(
        Result,
        "Please look at",
        mailBodyForUser,
        {
            IsHtml: true
        }))
于 2019-04-24T19:27:00.663 回答