在Google Mail API中更改Sendas电子邮件地址



我已经搜索过,但找不到任何示例

我发送的是

//Send Email
  var emailContents = 
  {
    to: techManagerEmail+","+organiserEmail,
    subject: "New Technical Support Request for " + eventName,
    body: "Event Name: "+eventName+ "nn"+"Event Room: "+eventRoom+ "nn"+eventDescription +"nn"+ allEvents + "nn" + "Google Folder: "+newFolderLink+"n n"+techTeam+" Calendar Link: "+ calendarLink + "nn" + "Date Submitted: " + submitionDate + " by: " + submitterEmail,
  };
  MailApp.sendEmail(emailContents);     
}  

当我发送时,当我希望将表格填写为发送者的人时,它将作为创建表格(me)的用户发送 - ((我也希望填写表格的人成为日历事件的创建者,但我认为这可能是一个更大的问题)。能够更改显示名称也很高兴。

我已经看了API sendas选项,但是正在努力弄清楚如何使用它或语法。

任何建议都将不胜感激。

根据要求,完整代码:

function onSubmit(e)
{
//Set General Variables  
  var formResponses = e.response.getItemResponses();
  var submitterEmail = e.response.getRespondentEmail();
  var submitionDate = e.response.getTimestamp();
  var eventName = formResponses[0].getResponse();
  var eventDescription = formResponses[1].getResponse();
  var moduleCode = formResponses[2].getResponse();
  var noStudents = formResponses[3].getResponse();  
  var organiser = formResponses[4].getResponse();
  var organiserEmail = formResponses[5].getResponse();
  var eventRoom = formResponses[6].getResponse();
  var techTeam = formResponses[7].getResponse();
  var supportRequired = formResponses[8].getResponse();
  var supportDescription = formResponses[9].getResponse();
  var equipmentRequired = formResponses[10].getResponse();
  var startDate = formResponses[11].getResponse();
  var nextAction = formResponses[18].getResponse();
  var supportDateNo = 11;
  var supportStartNo = 12;
  var eventStartNo = 13;
  var eventEndNo = 14;
  var supportEndNo = 15;
  var eventDaysDataNo = 16;
  var eventEndDateNo = 17;
  var nextActionNo = 18;  
  var nextActionSwitch = 1;
  var loopNo = 1;
  var calendarId =  CalendarApp.getCalendarById(calId);
  var allEvents ="";
  var day = 1000*60*60*24  
  var eventDescription = 'Organiser: ' + organiser + 'n n' + 
                         'Module Code: ' + moduleCode + 'n n' + 
                         'Description of the Event: ' + eventDescription  + 'n n' + 
                         'Type of support: ' + supportRequired + 'n n' + 
                         'Description of Support: ' + supportDescription + 'n n'+
                         'Number of Students: ' + noStudents + 'n n'+
                         'Equipment Required: ' + equipmentRequired + 'nn';

//General Operations  
  if(organiserEmail==""){var organiserEmail = submitterEmail};  
  if(techTeam=="Performance Studios")
  {
    var calId = "****"; 
    var techManagerEmail = "****"; 
    var calendarLink = "****";
    var parentFolder = DriveApp.getFolderById('****');    
  };
 if(techTeam=="****")
  {
    var calId = "****"; 
    var techManagerEmail = "****"; 
    var calendarLink = "****";
    var parentFolder = DriveApp.getFolderById('****');     
  };
 if(techTeam=="****")
  {
    var calId = "****"; 
    var techManagerEmail = "****"; 
    var calendarLink = "****";
    var parentFolder = DriveApp.getFolderById('****');     
  };
 if(techTeam=="****")
  {
    var calId = "****"; 
    var techManagerEmail = "****"; 
    var calendarLink = "****";
    var parentFolder = DriveApp.getFolderById('****');     
  };

//create attachments
  var folderName = startDate + ' ' + eventName
  var newFolder = parentFolder.createFolder(folderName).getId(); 
  var newFolderLink = DriveApp.getFolderById(newFolder).getUrl(); 

//Calendar Creation Loop
  while(nextActionSwitch==1)
  {
  //Set Variables
    var supportDate   = formResponses[supportDateNo].getResponse();
    var supportStart = formResponses[supportStartNo].getResponse();  
    var eventStart = formResponses[eventStartNo].getResponse();
    var eventEnd = formResponses[eventEndNo].getResponse();
    var supportEnd = formResponses[supportEndNo].getResponse(); 
    var eventDaysData = formResponses[eventDaysDataNo].getResponse();      
    var eventEndDate = formResponses[eventEndDateNo].getResponse();
    var nextAction = formResponses[nextActionNo].getResponse();
    var indivudualTechDetails = "";
    var individualEventDetails = "";
    var individualRepeatDetails = "";

  //Time Operations 
    var eventEndDate = eventEndDate.replace(/-/g, "");
    if (eventDaysData == "All"){var eventDaysData = "MO,TU,WE,TH,FR,SA,SU,"};
    if (eventDaysData =="No Repeat"){var eventDaysData = ""; var eventEndDate = ""};
    if (eventEndDate == ""){var eventDaysData = ""}; 
    var alteredEndDate = Number(eventEndDate)+1;    
    var startDateTime = new Date(supportDate+"T"+supportStart+":00");
    var endDateTime = new Date(supportDate+"T"+supportEnd+":00.000Z");
    if (endDateTime<=startDateTime){var endDateTime = new Date(endDateTime.getTime() + day)};        
    var start = Utilities.formatDate(startDateTime, "GMT", "yyyy-MM-dd'T'HH:mm:ss'Z'");
    var end = Utilities.formatDate(endDateTime, "GMT", "yyyy-MM-dd'T'HH:mm:ss'Z'");
    var finalDescription = eventDescription;
    if (eventStart!=""){var finalDescription = eventName + ' Start Time: ' + eventStart +'n' + eventName + ' End Time: ' + eventEnd + 'n n' + eventDescription}; 
  //Date Display Operations
    var eventDay = startDateTime.getDate();
    var eventMonth = startDateTime.getMonth()+1;
    var eventYear = startDateTime.getFullYear();
    var eventEmailDate = eventDay+"/"+eventMonth+"/"+eventYear;
    var repeatEndDate = new Date(eventEndDate+"T"+supportStart+":000Z");
    var eventEndDay = repeatEndDate.getDate();
    var eventEndMonth = repeatEndDate.getMonth()+1;
    var eventEndYear = repeatEndDate.getFullYear();
    var eventEmailEndDate = eventEndDay+"/"+eventEndMonth+"/"+eventEndYear;

  //Create Event
    var event = 
    {
      summary: eventName,
      location: eventRoom,
      start: {dateTime: start, timeZone: "GMT"},
      end: {dateTime: end, timeZone: "GMT"},
      description: finalDescription,  
      colorId: 8,
      attendees: [{email: submitterEmail}, {email:organiserEmail}],
      attachments: [{fileId: newFolder, fileUrl:newFolderLink, title: eventName+" Folder"}],
      "recurrence": ["RRULE:FREQ=DAILY;UNTIL="+alteredEndDate+";BYDAY="+eventDaysData]
    };
    if (eventEndDate == ""|| eventDaysData == "No Repeat")
    {
      var event = 
      {
        summary: eventName,
        location: eventRoom,
        start: {dateTime: start, timeZone: "GMT"},
        end: {dateTime: end, timeZone: "GMT"},
        description: finalDescription,  
        colorId: 8,
        attendees: [{email: submitterEmail}, {email:organiserEmail}],
        attachments: [{fileId: newFolder, fileUrl:newFolderLink, title: eventName+" Folder"}],
      };
    };
    var eventLink = Calendar.Events.insert(event, calId, {SendNotifications: true, supportsAttachments:true}).getHtmlLink();

  //Event Details
    var individualTechDetails =
      "Instance: " + loopNo + "nn" +    
      "Start Date: " + eventEmailDate + "nn" +
      "Tech Start Time: " + supportStart  + "nn" +
      "Tech End Time: " + supportEnd + "nn";
    if (eventStart != ""){var individualEventDetails = 
      "Event Start Time: " + eventStart + "nn" +
      "Event End Time: " + eventEnd + "nn"}; 
    if (eventEndDate != ""){ var individualRepeatDetails =   
      "Repeats: " + eventDaysData + "nn"+
      "End Date: " + eventEndDate+"nn"};
    var combinedEventDetails = individualTechDetails + individualEventDetails + individualRepeatDetails + "Event Link: "+ eventLink;
    var allEvents = allEvents + combinedEventDetails + "nn -- n n";

  //Set Loop Values
    var nextActionSwitch = 0;
    if (nextAction=="Add dates with a different pattern")
    {         
      var nextActionSwitch = 1;
      var loopNo = loopNo +1;          
      var supportDateNo = supportDateNo +8;
      var supportStartNo = supportStartNo +8;
      var eventStartNo = eventStartNo +8;
      var eventEndNo = eventEndNo +8;
      var supportEndNo = supportEndNo +8;
      var eventDaysDataNo = eventDaysDataNo +8;
      var eventEndDateNo = eventEndDateNo +8;
      var nextActionNo = nextActionNo +8;
    };
  };      

//Send Email
  var requestorEmails = submitterEmail + ", " + organiserEmail;
  if (organiserEmail == submitterEmail){requestorEmails = organiserEmail};
  var emailContents = 
  {
    to: techManagerEmail+","+requestorEmails,
    subject: "New Technical Support Request for " + eventName,
    body: "Event Name: "+eventName+ "nn"+"Event Room: "+eventRoom+ "nn"+eventDescription +"nn"+ allEvents + "nn" + "Google Folder: "+newFolderLink+"n n"+techTeam+" Calendar Link: "+ calendarLink + "nn" + "To create another event: ****" + "nn" + "Date Submitted: " + submitionDate + " by: " + submitterEmail,
    name: techTeam + " Technical Support Requests",
  };
  MailApp.sendEmail(emailContents);     
} 

有限的方法可以实现这一目标。实现这一目标的唯一方法是记录填写表格的人的帐户。如果您通过触发器自动运行脚本,只需在此帐户中设置触发器。

在应用程序脚本跟踪器上,关于此问题有一个开放的问题:问题Tracker

希望这回答您的问题!

相关内容

最新更新