使用Google Script创建一个弹出“撰写邮件”框

时间:2014-09-16 19:04:25

标签: google-apps-script google-sheets

我有一个与Google表单相关联的电子表格,可以从提交表单的人那里获取电子邮件地址。我已经有了一个菜单项,可以从单元格中获取电子邮件地址,编写电子邮件并发送。

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Send E-mail')
      .addItem('Selected E-mail', 'selected_email')
      .addToUi();
}

function selected_email() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var email = sheet.getActiveCell().getValue();
  GmailApp.sendEmail(email, "Your Suggestion", "");
}

但是,我希望能够按照我的选择编辑邮件,而无需更改脚本。

有没有办法使用Google Apps脚本在Gmail中创建弹出式“撰写邮件”框?

提前谢谢。

1 个答案:

答案 0 :(得分:0)

基于对该问题的一些评论,我能够弄清楚如何解决我自己的问题。

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Send E-mail')
      .addItem('Selected E-mail', 'selected_email')
      .addToUi();
}

function selected_email() {
  var aliases = GmailApp.getAliases();
  var desiredAlias = aliases[/*Any Number*/];
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var email = sheet.getActiveCell().getValue();
  var message = Browser.inputBox("Message Composer", "Compose E-mail:", Browser.Buttons.OK_CANCEL);
  GmailApp.sendEmail(email, "Your Suggestion", message, {from: desiredAlias});
}

GmailApp.sendEmail有多个实现,其中一个实现'options' parameter。在此,您可以设置要向谁发送电子邮件,前提是您可以访问该帐户。这可以通过获取帐户的别名来完成。

为了使用户能够输入自己的文本,有一个inputBox method是Browser类的一部分,允许用户将任何文本存储为程序中的变量。通过这样做,您可以创建一个准“撰写电子邮件”框,并将输入的文本用作您的电子邮件。

感谢@Sergeinsas@Hann的帮助!