2016-07-06 4 views
1

Googleスプレッドシートの一部の値を変更した場合、電子メールを自動的に送信するためにアプリスクリプトで次のコードを生成しました。アプリスクリプトで電子メールを送信するGoogleスプレッドシートの所有者を変更する

私の質問は、今私はこのGoogleスプレッドシートの所有者なので、すべてのメールは自分のGmailアカウントから送信されます。 送信者を変更して、各メールが他のGmailアカウントから送信されるようにすることができるかどうかは疑問です。私は所有者を私の同僚の一人に変えてテストしましたが、うまく機能しません。私はまだGoogleのスプレッドシートの所有者が他人であっても、それらのメールを "送信"しています。

コードを変更する必要がありますか?どんなアドバイスも大歓迎です!ありがとう!

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) 
} 

}

答えて

1

電子メールは、スクリプトが実行されている権限を持つアカウントから送信されます。

あなたのケースでは、それはスクリプトを実行するトリガーを作成したアカウントになります。編集権限を持つユーザーはすべてトリガーを作成できるため、スクリプト自体の所有者は関係ありません。

新しいユーザーがトリガーを作成したときに、スクリプトを手動でトリガーして認証できるようにする必要があることに注意してください。

+0

ありがとうございます!あなたの答えとuser2970721の答えを組み合わせることによって、「実行」設定を変更してテストし、同僚が手動でスクリプトを起動させるようにしました。 –

4

「Webアプリケーションを展開する」設定を調整して、アプリケーションスクリプトが「Webアプリケーションにアクセスするユーザー」として実行されるようにする必要があります。このオプションは、「アプリケーションを実行する」設定の下にあります。

これは、キャメロンが説明したように、ユーザーがアカウントを一度使用するようにアプリを認証する必要があります。

+0

ありがとう!それは働いて、私は "実行"設定を変更して私の同僚とそれをテストし、私の同僚が手動でスクリプトを起動させる。 –

関連する問題