title: Google Script send form values by email, error: cannot read property "namedValues"
body: <p>Project key: MyvPlY2KvwGODjsi4szfo389owhmw9jII</p>
  
  <p>I am trying to run a script that sends the contents of my form by email each time the form is submitted. I was following the instructions from this link below exactly until I started getting errors and I received advice to change my script to open spreadsheets by id:</p>
  
  <p><a href="http://www.snipe.net/2013/04/email-contents-google-form/" rel="nofollow">http://www.snipe.net/2013/04/email-contents-google-form/</a></p>
  
  <p>When I complete the form, it is supposed to email the contents to my email.</p>
  
  <p>The problem I am nowhaving is that the function which goes through the form values doesn't work. It's returning the error "TypeError: Cannot read property "namedValues" from undefined. (line 15, file "Code")" in regards to the piece of code below:</p>
  
  <pre><code>for(var i in headers) 
     message += headers[i] + ': '+ e.namedValues[headers[i]].toString() + "\n\n";
  </code></pre>
  
  <p>I am not too familiar with google scripts so I'm not sure how to work around this issue either. Is there anything you recommend? I have included the entire script below. </p>
  
  <pre><code>function sendFormByEmail(e) 
  {    
    // Remember to replace this email address with your own email address
    var email = "sample@email.com"; 
  
    var s = SpreadsheetApp.openById("1hOqnK0IVa2WT6-c-MY0jyGGSpIJIV2yzTXdQYX4UQQA").getSheets()[0];
    var headers = s.getRange(1,1,1,s.getLastColumn()).getValues()[0];    
    var message = "";
    var subject = "New User Form";
  
    // The variable e holds all the form values in an array.
    // Loop through the array and append values to the body.
  
    for(var i in headers) 
      message += headers[i] + ': '+ e.namedValues[headers[i]].toString() + "\n\n";     
  
    // Insert variables from the spreadsheet into the subject.
    // In this case, I wanted the new hire's name and start date as part of the
    // email subject. These are the 3rd and 16th columns in my form.
    // This creates an email subject like "New Hire: Jane Doe - starts 4/23/2013"
    subject += e.namedValues[headers[2]].toString() + " - starts " + e.namedValues[headers[15]].toString();
  
    // Send the email
    MailApp.sendEmail(email, subject, message); 
  }
  </code></pre>