Power Apps - отправка электронной почты в список пользователей из коллекции с помощью Flow
У меня есть коллекция под названием 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
Я хочу отправить электронное письмо каждому пользователю, и каждый пользователь должен получить только одно электронное письмо.
Чтобы сделать это,
Я создал требуемый COL_2 в качестве другой коллекции
ToAddressUnique
asdfg@example.com
koldef@example.com
asdasdasfda@example.com
nanasd@example.com
asdasfg1@example.com
Мне удалось сузить свою проблему сейчас. Каждый пользователь из вышеуказанной коллекции (requiredCol_2) получит электронное письмо. И мое тело электронной почты будет объединено с именем и идентификатором в форме списка, соответствующего этому конкретному идентификатору электронной почты.
Например, письмо, отправленное по адресу asdfg@example.com, будет выглядеть так:
Кому:- asdfg@example.com
Тема: - Пожалуйста, посмотрите на
Тело: -
Нажмите здесь и просим рассмотреть следующее,
- Abc - 123
- Def - 234
- Гхи - 567
Нажмите здесь гиперссылку, которую я хочу передать через переменную.
Я новичок в Powerapps и поток. Поэтому, пожалуйста, объясните мне шаги, чтобы заставить это работать.
Это мой код в 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");
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
}))