2016-07-06 4 views
1

Ich habe die folgenden Codes in App-Skript generiert, um E-Mails automatisch zu senden, wenn Benutzer einige Werte in Google Tabellenkalkulation geändert, die gut funktioniert.Ändern der Besitzer von Google Tabellenkalkulation zum Senden von E-Mails mit App-Skript

Meine Frage ist, dass ich jetzt der Besitzer für diese Google-Tabelle bin, so dass jede E-Mail von meinem Google Mail-Konto gesendet wird. Ich frage mich nur, ob es möglich ist, ändern Sie den Absender, so dass jede E-Mail aus anderen Gmail-Konto gesendet wird. Ich habe es getestet, indem ich den Besitzer zu einem meiner Kollegen gewechselt habe, aber es funktioniert nicht. Ich sende diese E-Mails immer noch, obwohl der Besitzer der Google-Tabelle eine andere Person ist.

Muss ich meinen Code ändern? Jeder Rat würde sehr geschätzt werden! Vielen Dank!

function PODTool() { 
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); 
SpreadsheetApp.setActiveSheet(spreadsheet.getSheets()[0]; 

var sheet = spreadsheet.getActiveSheet(); 
var lastRow = sheet.getLastRow(); 

var startRow = 2; 

var range = sheet.getRange(2,7,lastRow-startRow+1,1); 
var numRows = range.getNumRows(); 
var LinksToPODForm = range.getValues(); 

var rangeColumnReadyToSendEmail =sheet.getRange(2,9,lastRow-startRow+1,1); 
var sendEmailOrNot = rangeColumnReadyToSendEmail.getValues(); 


var warning_count = 0; 
var msg = ""; 

// Loop over the values 
for (var i = 0; i <= numRows - 1; i++) { 
var EachLinkValue = LinksToPODForm[i][0]; 


if (EachSendEmailOrNotValue=="yes" && sheet.getRange(i+2,10).getValue()=='Email not Sent' &&EachEmailRecipient=="Someone"){ 
var BillingOfLadingShowingInEmailNotification = Billing_of_lading_number[i][0]; 


msg = msg +"Requester:  "+EachEmailRecipient+" 
warning_count++; 
var subject ="Billing of Lading: "+BillingOfLadingShowingInEmailNotification; 
    sheet.getRange(i+2,10).setValue('Sent'); 
var recipient = "[email protected]"; 
} 

if(warning_count) { 
    MailApp.sendEmail(recipient, subject,msg) 
} 

};

Antwort

1

Die E-Mails werden von dem Konto gesendet, unter dessen Berechtigung das Skript ausgeführt wird.

Ich glaube in Ihrem Fall, das wäre derjenige Konto erstellt den Auslöser, der das Skript ausführt. Der Eigentümer des Skripts selbst ist nicht relevant, da jeder Benutzer mit Bearbeitungsrechten einen Auslöser erstellen kann.

Beachten Sie, dass wenn der neue Benutzer den Trigger erstellt, sie auch das Skript manuell einmal auslösen müssen, damit sie es autorisieren können.

+0

danke! Es funktionierte, indem ich Ihre Antwort und die Antwort des Benutzers2970721 kombinierte, ich testete es gerade, indem ich die Einstellung "Ausführen" änderte, und ließ meinen Kollegen das Skript manuell auslösen. –

4

Sie müssen die Einstellungen von "Deploy Web App ..." anpassen, damit das Skript der App als "Benutzer, der auf die Web-App zugreift" ausgeführt wird. Diese Option steht unter der Einstellung "Ausführen der App als".

Dies erfordert, dass der Benutzer die App autorisiert, ihr Konto einmal zu verwenden, wie Cameron beschrieben hat.

+0

danke! Es funktionierte, ich habe es gerade mit meinem Kollegen getestet, indem ich die "Ausführen" -Einstellung änderte und meinen Kollegen das Skript manuell auslösen ließ. –

Verwandte Themen