更改Google电子表格的所有者以发送包含应用脚本的电子邮件 [英] Changing the owner of google spreadsheet for sending emails with app script

查看:154
本文介绍了更改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 =;

//遍历值
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 +请求者:+ EachEmailRecipient +
wa rning_count ++;
var subject =提单结算:+ BillingOfLadingShowingInEmailNotification;
sheet.getRange(i + 2,10).setValue('Sent');
var recipient =xxx@gmail.com;
}

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

};

解决方案

电子邮件将从帐户由脚本运行的权限决定。



我相信你的情况,那就是无论哪个帐户创建运行脚本的触发器。脚本本身的所有者并不相关,因为任何具有编辑权限的用户都可以创建触发器。



请注意,当新用户创建触发器时,他们也会必须手动触发脚本一次,以便他们可以授权。


I have generated the following codes in app script in order to send emails automatically if users changed some values in google spreadsheet, which is working fine.

My question is that right now I am the owner for this google spreadsheet, so every email is sent out from my gmail account. I am just wondering if it is possible to change the sender so that each email will be sent out from other's gmail account. I did test it by changing the owner to one of my colleagues but it is not working. I am still "sending" those emails even though the owner of the google spreadsheet is someone else.

Do I need to change my code? Any advice would be greatly appreciated! Thanks!

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 = "xxx@gmail.com";
}

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

};

解决方案

The emails will be sent from the account under who's authority the script is running.

I believe in your case, that would be whichever account created the trigger that runs the script. The owner of the script itself isn't relevant, since any user with edit rights can create a trigger.

Note that when the new user creates the trigger they'll also have to manually trigger the script once so they can Authorize it.

这篇关于更改Google电子表格的所有者以发送包含应用脚本的电子邮件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆