当前位置: 首页 > 知识库问答 >
问题:

Google Sheets Script MailApp.send电子邮件提示

柳羽
2023-03-14

正在尝试更改以下脚本以提示输入电子邮件地址。我可以把它作为一个插件加载到Google sheets中,它工作得很好,但我希望每次运行它时都能更改“to”地址。有没有办法强制进行某种提示,以便每次跑步时输入电子邮件地址?

    function onOpen() { 
  // Try New Google Sheets method
  try{
    var ui = SpreadsheetApp.getUi();
    ui.createMenu('SendMail')
    .addItem('Send Report', 'getGoogleSpreadsheetAsExcel')
    .addToUi(); 
  }

  // Log the error
  catch (e){Logger.log(e)}

}

function getGoogleSpreadsheetAsExcel(){

  try {

    var ss = SpreadsheetApp.getActive();

    var url = "https://docs.google.com/feeds/download/spreadsheets/Export?key=" + ss.getId() + "&exportFormat=csv";

    var params = {
      method      : "get",
      headers     : {"Authorization": "Bearer " + ScriptApp.getOAuthToken()},
      muteHttpExceptions: true
    };

    var blob = UrlFetchApp.fetch(url, params).getBlob();

    blob.setName(ss.getName() + ".csv");

    MailApp.sendEmail("xxxxxx@gmail.com", "Stock report of today", "The XLSX file is attached", {attachments: [blob]});

  } catch (f) {
    Logger.log(f.toString());
  }
}

共有1个答案

郭弘方
2023-03-14

您只需获取电子表格的UI并发送提示,然后通过if语句运行该提示,以确保按下了正确的按钮,请尝试以下操作:

function getGoogleSpreadsheetAsExcel(){

  try {

    var ss = SpreadsheetApp.getActive();

    var url = "https://docs.google.com/feeds/download/spreadsheets/Export?key=" + ss.getId() + "&exportFormat=csv";

    var params = {
      method      : "get",
      headers     : {"Authorization": "Bearer " + ScriptApp.getOAuthToken()},
      muteHttpExceptions: true
    };

    var blob = UrlFetchApp.fetch(url, params).getBlob();

    blob.setName(ss.getName() + ".csv");

    var ui = SpreadsheetApp.getUi();
    var prompt = ui.prompt('Enter email address:', '',ui.ButtonSet.OK_CANCEL);

    if (prompt.getSelectedButton() == 'OK') {

      var mail = prompt.getResponseText();
      MailApp.sendEmail(mail, "Stock report of today", "The XLSX file is attached", {attachments: [blob]});
    }

  } catch (f) {
    Logger.log(f.toString());
  }
}

代码提示输入电子邮件地址:

var prompt = ui.prompt('Enter email address:', '',ui.ButtonSet.OK_CANCEL);

然后运行一个快速的if语句,以确保按下的按钮是“好的”,如果取消了,它什么也不会做。

if (prompt.getSelectedButton() == 'OK') {

  var mail = prompt.getResponseText();
  MailApp.sendEmail(mail, "Stock report of today", "The XLSX file is attached", {attachments: [blob]});
}

如您所见,var-mail用于sendmail(),这意味着它将使用您输入的任何电子邮件地址作为电子邮件的收件人。

 类似资料:
  • 我有一个关于Strapi电子邮件插件的问题。我想使用Nodemailer。当我用邮递员测试它时,我得到了错误500。我是否用错误的格式编写了PostScript JSON? 提前感谢! 本杰明

  • 查看以下,详细了解如何处理与 iPhone 手机配对的 M600 上的电子邮件。 阅读您的 M600 上的电子邮件 如果您在手机上使用电子邮件通知,那么在您收到新邮件时会在您的 M600 看到通知。 阅读电子邮件 轻触通知。 利用您的 M600 回复电子邮件 您可以利用您的手腕表回复邮件。 回复电子邮件 轻触通知查看所有邮件 从屏幕底部向上滑动,查看您可以执行的操作。 轻触 Reply(回复),并

  • Email的历史比Web还要久远,直到现在,Email也是互联网上应用非常广泛的服务。 几乎所有的编程语言都支持发送和接收电子邮件,但是,先等等,在我们开始编写代码之前,有必要搞清楚电子邮件是如何在互联网上运作的。 我们来看看传统邮件是如何运作的。假设你现在在北京,要给一个香港的朋友发一封信,怎么做呢? 首先你得写好信,装进信封,写上地址,贴上邮票,然后就近找个邮局,把信仍进去。 信件会从就近的小

  • Email的历史比Web还要久远,直到现在,Email也是互联网上应用非常广泛的服务。 几乎所有的编程语言都支持发送和接收电子邮件,但是,先等等,在我们开始编写代码之前,有必要搞清楚电子邮件是如何在互联网上运作的。 我们来看看传统邮件是如何运作的。假设你现在在北京,要给一个香港的朋友发一封信,怎么做呢? 首先你得写好信,装进信封,写上地址,贴上邮票,然后就近找个邮局,把信仍进去。 信件会从就近的小

  • 问题内容: 我正在使用sendgrid发送电子邮件,并且使用以下代码可以正常工作,但没有附件。 但是我需要发送附件,因此我搜索了github源和Web文档API,由于某种原因,没有javadocs,但是有一个示例GitHub sendgrid, 所以我一直在尝试直到它起作用为止,我缩小了一些异常和响应代码,起初我是被禁止的未经授权,最好是响应202,表示有效且已排队(在此处检查),这是我的代码发送

  • 要使用Erlang发送电子邮件,您需要使用github提供的相同包。 github链接是 - https://github.com/Vagabond/gen_smtp 此链接包含一个smtp utility ,可用于从Erlang应用程序发送电子邮件。 按照步骤,可以从Erlang发送电子邮件 Step 1 - 从github site下载erl files 。 应将这些文件下载到hellowor