根据Google表单向特定用户发送电子邮件

时间:2014-08-19 23:48:36

标签: google-apps-script google-form

背景:Google Script for Forms创建一个电子邮件日志,该日志通过电子邮件发送给特定的人选择

需要有关代码的电子邮件地址部分的帮助。我希望根据单选按钮将消息发送到电子邮件地址,并选择人员姓名。任何想法都会有所帮助。

function Initialize() {
  var triggers = ScriptApp.getScriptTriggers();
  for (var i in triggers) {
    ScriptApp.deleteTrigger(triggers[i]);
  }

  ScriptApp.newTrigger("SendGoogleForm")
    .forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet())
    .onFormSubmit()
    .create();
}

function SendGoogleForm(e) {
  try {

    var email = HELPHELPHELP;

    // Optional but change the following variable
    // to have a custom subject for Google Form email notifications

    var subject = "Google Docs Form Submitted";
    var s = SpreadsheetApp.getActiveSheet();
    var columns = s.getRange(1, 1, 1, s.getLastColumn()).getValues()[0];
    var message = "";

    // Only include form fields that are not blank
    for (var keys in columns) {
      var key = columns[keys];
      if (e.namedValues[key] && (e.namedValues[key] != "")) {
        message += key + ' :: ' + e.namedValues[key] + "\n\n";
      }
    }
    // This is the MailApp service of Google Apps Script
    // that sends the email. You can also use GmailApp for HTML Mail.

    MailApp.sendEmail(email, subject, message);
  } catch (e) {
    Logger.log(e.toString());
  }
}

1 个答案:

答案 0 :(得分:0)

据推测,预定收件人的姓名来自一个问题/专栏,标题为"消息为"。

在这种情况下,试试这个:

...
var email = resolveEmail( e.namedValues["Message for"] );
...

function resolveEmail( userName ) {
  // List of userNames & (secret) email addresses
  var userEmails = {
    "Mickey" : "bigears@example.com",
    "Donald" : "duckman@example.com"  // etc.
  };

  if (userName in userEmails) {
    return userEmails[userName];
  }
  else {
    // Unknown user - send email to script owner
    return Session.getEffectiveUser().getEmail();

    // Alternatively, could throw an error to get notified
    // throw new Error( "Could not resolve email for user: " + userName );
  }
}