那些Excel中的脚本:发送邮件

这个需求来自于Github,在script-lab的issue列表中,我看到了这个问题。

https://github.com/OfficeDev/script-lab/issues/952.

那些Excel中的脚本:发送邮件

然后我做了一个例子。其实如果通过一些特殊的办法,Javascript也许也可以直接发邮件,但更加好的做法是把发送邮件的逻辑先封装起来,然后在脚本中只需要调用即可。

例如,我用Power Automate做了一个很简单的流程,可以根据输入的参数,来发送邮件。

那些Excel中的脚本:发送邮件

然后需要的代码大致如下。如果你要用,你需要修改 to 这个字段的值。

$("#run").click(() => tryCatch(run));
async function run() {  await Excel.run(async (context) => {    const payload = {      to: "change to you email address",      subject: "test",      body: "body"    };
    const url =      "https://prod-26.southeastasia.logic.azure.com:443/workflows/8b05f53246ee40658e6d493fa74267f6/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=kuo9GHih2PSeTsO0bHp-1o5P77sUNYVnecI9NOvgBTY";
    await fetch(url, {      method: "post",      body: JSON.stringify(payload),      headers: {        "content-type": "application/json"      }    }).then((res) => console.log(res.status));  });}
/** Default helper for invoking an action and handling errors. */async function tryCatch(callback) {  try {    await callback();  } catch (error) {    // Note: In a production add-in, you'd want to notify the user through your add-in's UI.    console.error(error);  }}

只要运行上面的代码,你指定的邮箱很快会收到邮件。

那些Excel中的脚本:发送邮件

这就完全体现了新一代的脚本的威力了。我的这个系列,将每次都以一个真实的需求场景出发,给大家展示代码。如果你有一些有意思的场景,请告诉我,免费为你编写。