0

我目前正在使用谷歌脚本创建一个请假申请表。用户提交表单后,它会向主管发送一封电子邮件。主管能够批准或拒绝,并能够从电子邮件本身中说明拒绝的原因。我完成了所有工作流程并开始工作,现在我只是停留在从电子邮件中的文本字段输入中检索一个值并在电子表格中设置检索到的值。有什么建议或其他解决方法吗?

我已经尝试过 document.getElementId() 但是这里没有定义文档所以......我不太确定代码是否应该在 doGet 函数中,但我认为它不太可能。

function sendingEmail(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
Logger.log(sheet.getRange(25, 14).getValue());
var employeeName = e.values[1];
var email = e.values[2];
var email2 = e.values[3];
var supervisor = e.values[4];
var employeeNo = e.values[5];
var typeofLeave = e.values[6];
var leaveShift = e.values[8];
var otherReason = e.values[7];
var reason = e.values[9];
var dateFrom = e.values[10];
var dateTo = e.values[11];
var row = e.range.getRow();
var supervisoremail = sheet.getRange(row, 14);
var status = sheet.getRange(row, 13);
var rejectReason = sheet.getRange(row, 15);

var url = 'https://script.google.com/macros/s/******exec?';

var approve = url +'approval=true'+'&reply='+ email +'&reply2='+ email2 +'&row=' + row; 
var reject = url +'approval=false'+'&reply='+ email +'&reply2='+ email2 +'&row=' + row;

var html = "<body>"+
              "<h2>Please review the leave application</h2><br />"+
                "Employee Name :"+ employeeName + "<br />"+
                "Employee Email :" + email + "<br />"+
                "Employee Email opt :" + email2 + "<br />"+
                "Supervisor Name :" + supervisor + "<br />"+
                "Employee No :" + employeeNo + "<br />"+
                "Type of Leave :" + typeofLeave + "<br />"+
                "Leave Shift :" + leaveShift + "<br />"+
                "Other Reason for Leave :" + otherReason + "<br />"+
                "Reason :" + reason + "<br />"+
                "From :" + dateFrom + "<br />"+
                "To :" + dateTo + "<br />"+
                  "<a href="+approve +">Approve</a><br />"+
                    "<a href="+ reject +">Reject</a><br />"+
                    <p> //TEXT FIELD INPUT HERE
        <input type="text" value="" name="Email" placeholder="Reject  Reason" id="rejectreason"/> 
    </p>
         "</body>";
if (supervisor == 'Geralt'){
status.setValue('PENDING');
supervisoremail.setValue('GeraltofRivia@gmail.com.my'); //set supervisor emails  into spreadsheet
MailApp.sendEmail("GeraltofRivia@gmail.com.my", "Approval Request", "What no HTML?", {htmlBody: html}) 
var y = p.getElementById('rejectreason').value; //CODE ENTERS HERE?
rejectReason = setValue(y); //SETVALUE THE STRING INTO SPREADSHEET
}
else if (supervisor == 'Ciri'){
status.setValue('PENDING');
supervisoremail.setValue('Ciri@gmail.com'); //set supervisor emails into spreadsheet
MailApp.sendEmail("Ciri@gmail.com", "Approval Request", "What no HTML?",  {htmlBody: html}); /* ciri email here*/
}

电子邮件输出:
请查看请假申请

Employee Name :Yennefer
Employee Email :
Employee Email opt :yenofvengerberg@gmail.com
Supervisor Name :
Employee No :yen T138
Type of Leave :Annual Leave
Leave Shift :Full day
Other Reason for Leave :
Reason :holiday
From :12/2/2018
To :12/3/2018
Approve
Reject
Reject reason (text field)

这就是电子邮件 html 的样子。单击拒绝/批准链接后,我希望在电子表格中更新文本字段中的字符串或值。

4

1 回答 1

0

最简洁的答案是不。电子邮件只能显示信息而不是收到它们。最好的选择是您在电子邮件正文中放置一个链接,当用户单击它时,它将用户重定向到一个页面,他可以在其中填写您询问的字段

于 2018-12-26T15:59:31.120 回答