从 Excel 有条件地组装和发送电子邮件

问题描述 投票:0回答:1

我有一个可以访问 PowerAutomate 的 Office 365。

在一个 Office 365 Excel 工作簿中,有三个工作表。

第一个工作表“人员”包含有关收件人的数据,包括他们的姓名、电子邮件和类别。

第二张表有查找,它将类别与代码链接起来。

最后一张纸上有要发送的电子邮件文本。

我想使用 Power Automate/Office Scripts 执行的操作是仅向类别为 2 或 3 的人员发送电子邮件。不应将电子邮件发送给类别为 1 的人员。

邮件合并位是:

  1. 在从
    Sheet3!A2
    抓取的主题中为收件人添加适当的代码。例如对于 Mack,代码是 GNG。
  2. 在从
    Sheet3!B2
    抓取的电子邮件正文中添加“亲爱的收件人姓名”。对于麦克来说,这将是“亲爱的麦克”
  3. 将电子邮件发送到正确的电子邮件地址。对于 Mack,应将其发送至 [电子邮件受保护]

我什至很难找到有关如何使用 Office 脚本 在 Excel 中发送电子邮件的教程。因此,非常感谢任何指导。

excel office365 power-automate office-scripts
1个回答
0
投票
  • Office 脚本不具备直接发送电子邮件的功能;您可以利用 Power Automate 来实现此目的。
  • 以下代码片段演示了如何撰写电子邮件。
  • 实现
    interface
    是与 Power Automate 集成以发送电子邮件所必需的。

微软示例:

使用 Office 脚本和 Power Automate 通过电子邮件发送图表和表格的图像

function main(workbook: ExcelScript.Workbook) {
  // function main(workbook: ExcelScript.Workbook): mailItem {
  let wsPeople = workbook.getWorksheet("People");
  let wsCate = workbook.getWorksheet("Sheet2");
  let wsSubBody = workbook.getWorksheet("Sheet3");
  let valuePeople = wsPeople.getUsedRange().getValues();
  let valueCate = wsCate.getUsedRange().getValues();
  let valueSubBody = wsSubBody.getUsedRange().getTexts();
  let mailItems = [] = [];
  for (let i = 1; i < valuePeople.length; i++) {
    let valCate = valuePeople[i][2];
    if (valCate === 2 || valCate === 3) {
      let sendTo = valuePeople[i][1];
      let mailSubject = valueSubBody[1][0] + " " + valueCate[valCate][1].toString();
      let mailBody = valueSubBody[1][1];
      mailItems.push([sendTo, mailSubject, mailBody]);
    }
  }
  console.log(mailItems);
}

// interface mailItem {
//   sendTo: string;
//   mailSubject: string;
//   mailBody: string;
// }
© www.soinside.com 2019 - 2024. All rights reserved.