Как настроить MailApp noReply с true на false в пользовательском меню Google листов?

#google-apps-script #google-sheets-api #google-apps

Вопрос:

Я пытаюсь создать пользовательское меню в Google Таблицах, которое отключает noReply, а также отправляет массовые электронные письма студентам. У меня хорошо работает функция массовой электронной почты. Но я хотел добавить возможность изменить

 {name:"Automatic Emailer", replyTo: 'email@gmail.com', noReply: true}); 

to 

{name:"Automatic Emailer", replyTo: 'email@gmail.com', noReply: false}); 
 

Я хочу иметь возможность изменить это в пользовательском меню

Вот сценарий пользовательского меню.

 function onOpen(e) {
var menu = SpreadsheetApp.getUi()
  .createMenu('Mass Student Email')
  .addItem('Send Mass Email', 'checkResponse')
  .addToUi();
}

function checkResponse() {
var ui = SpreadsheetApp.getUi();
var noReply = ui.alert('Remove NoReply', ui.ButtonSet.YES_NO);
var response = ui.alert('Are you sure you want to proceed?', ui.ButtonSet.YES_NO);

if (noReply == ui.Button.YES) {
noReplyOff();
if (response == ui.Button.YES) {
sendEmails();
} else {
Logger.log("The user wasn't sure.");
}

}
 

Я пытался создать функцию, но я новичок в этом, и мне трудно понять, как написать эту функцию.

 function noReplyOff(){

MailApp.sendEmail(noReply:true).setValue(noReply:false);

}
 

Любая помощь будет очень признательна!

Ответ №1:

Похоже, я все понял. Я только что создал еще один пункт меню и другую функцию с Норэльпи как ложным. Вот код.

  function basMenu() {

 var ui = SpreadsheetApp.getUi();
 var menu = ui.createMenu('Send Student');
  menu.addItem('Mass Email', 'checkResponse');
  menu.addSeparator();
  menu.addItem('Remove NoReply', 'noReply')

  menu.addToUi();
  }


function onOpen(){

basMenu();

}

function checkResponse() {
var ui = SpreadsheetApp.getUi();
var response = ui.alert('Send emails from email list?', ui.ButtonSet.YES_NO);

if (response == ui.Button.YES) {
sendEmails();
 } else {
Logger.log("The user wasn't sure.");

 
 }   
 
}

function noReply(){
var ui = SpreadsheetApp.getUi();
var noReplyOff = ui.alert('Remove noReply from email?', ui.ButtonSet.YES_NO);

if (noReplyOff == ui.Button.YES) {
  sendNoReplyEmails();
    
}

}
function sendEmails() {

var main = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("GED").activate();

var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var lr = ss.getLastRow();
var mt = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Email");


var templateSubject = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Email");
var templateName = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Email");
var templateText = 
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Email").getRange(3, 
2).getValue();


var quotaLeft = MailApp.getRemainingDailyQuota();
Logger.log(quotaLeft);
if((lr-1) > quotaLeft){
Browser.msgBox("Remaining email quota: "   quotaLeft);
} else 

for (var i = 2;i<=lr;i  ){

var currentFirstName = ss.getRange(i, 1).getValue();
var currentLastName= ss.getRange(i, 2).getValue();
var currentEmail = ss.getRange(i, 3).getValue();
var currentUID = ss.getRange(i, 4).getValue();
var currentPhone = ss.getRange(i, 5).getValue();
var currentProgram = ss.getRange(i, 6).getValue();
var subjectLine = mt.getRange(1, 2).getValue();
var nameLine = mt.getRange(2, 2).getValue();

var messageBody = templateText.replace("{{First}}",currentFirstName).replace(" 
{{Last}}",currentLastName).replace("{{UID}}",currentUID).replace(" 
{{Phone}}",currentPhone)
.replace("{{Email}}",currentEmail).replace("{{Program}}",currentProgram);


MailApp.sendEmail(currentEmail, subjectLine, messageBody, {name:"Automatic Emailer", 
replyTo: 'email@yahoo.com', noReply: true});
SpreadsheetApp.getActiveSheet().getRange(i, 7).setValue('Sent');
SpreadsheetApp.getActiveSheet().getRange(i, 8).setValue(new Date);
    

    
}

}


function sendNoReplyEmails() {

var main = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("GED").activate();

var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var lr = ss.getLastRow();
var mt = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Email");


var templateSubject = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Email");
var templateName = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Email");
var templateText = 
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Email").getRange(3, 
2).getValue();


var quotaLeft = MailApp.getRemainingDailyQuota();
Logger.log(quotaLeft);
if((lr-1) > quotaLeft){
Browser.msgBox("Remaining email quota: "   quotaLeft);
} else 

for (var i = 2;i<=lr;i  ){

var currentFirstName = ss.getRange(i, 1).getValue();
var currentLastName= ss.getRange(i, 2).getValue();
var currentEmail = ss.getRange(i, 3).getValue();
var currentUID = ss.getRange(i, 4).getValue();
var currentPhone = ss.getRange(i, 5).getValue();
var currentProgram = ss.getRange(i, 6).getValue();
var subjectLine = mt.getRange(1, 2).getValue();
var nameLine = mt.getRange(2, 2).getValue();

var messageBody = templateText.replace("{{First}}",currentFirstName).replace(" 
{{Last}}",currentLastName).replace("{{UID}}",currentUID).replace(" 
{{Phone}}",currentPhone)
.replace("{{Email}}",currentEmail).replace("{{Program}}",currentProgram);


MailApp.sendEmail(currentEmail, subjectLine, messageBody, {name:"Automatic Emailer", 
replyTo: 'email@yahoo.com', noReply: false});
SpreadsheetApp.getActiveSheet().getRange(i, 7).setValue('Sent');
SpreadsheetApp.getActiveSheet().getRange(i, 8).setValue(new Date);
    
    
}

}