- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我更改电子表格中的某些内容时,onEdit()
触发器运行,我可以看到我放入代码中的所有 msgbox。
我的函数停在这一行
MailApp.sendEmail(emailAddress, subject, message);
我从未看到消息“电子邮件已发送!”,并且在执行脚本中收到错误:
You do not have permission to call sendEmail
如果我直接在脚本编辑器中运行脚本,一切正常......
这是我的代码:
function onEdit() {
var sheet = SpreadsheetApp.getActiveSheet();
var sheetname = sheet.getName()
var AcCellRange = sheet.getActiveCell()
var AcCol = AcCellRange.getColumn()
var AcRow = AcCellRange.getRow()
if (sheetname=="Questions/Réponses") {
//Browser.msgBox(AcCol+' / '+AcRow)
//liste d'instructions
//Boucle si les colonne sont comprise dans le range
if ((AcCol==3) || ((AcCol==7))){
//Browser.msgBox(AcCol)
if (AcRow > 7){
//Browser.msgBox(AcRow)
sendEmails()
}
}
}
else
{}
}
function sendEmails() {
Browser.msgBox('SendEmails')
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getSheetByName('ListCourriel');
Browser.msgBox('SendEmails2')
var sheetDonnee = spreadsheet.getSheetByName('Questions/Réponses');
var RangeProjet = sheetDonnee.getRange(1, 3)
var NoProjet = RangeProjet.getValue()
var RangeProjet = sheetDonnee.getRange(4, 3)
var ProjName = RangeProjet.getValue()
Browser.msgBox('SendEmails3')
var startRow = 2; // First row of data to process
var LastRows = sheet.getRange(1,4)
var numRows = LastRows.getValue(); // Number of rows to process
// Fetch the range of cells A2:B3
var dataRange = sheet.getRange(startRow, 1, numRows, 2)
// Fetch values for each row in the Range.
var data = dataRange.getValues();
Browser.msgBox('SendEmails4')
//Permet d'aller cherche les info de la ligne active
var ActiveCellRange = sheetDonnee.getActiveCell()
var ActiveRows = ActiveCellRange.getRow()
var NoLigne = sheetDonnee.getRange(ActiveRows,1)
var sDep = sheetDonnee.getRange(ActiveRows,2)
var sDate = sheetDonnee.getRange(ActiveRows,4)
var sInitiale = sheetDonnee.getRange(ActiveRows,5)
var sQuestion = sheetDonnee.getRange(ActiveRows,3)
Browser.msgBox('SendEmails5')
var rDate = sheetDonnee.getRange(ActiveRows,9)
var rInitiale = sheetDonnee.getRange(ActiveRows,10)
var rReponse = sheetDonnee.getRange(ActiveRows,7)
Browser.msgBox('SendEmails6')
var subject = 'Modif. Question/Réponse - Projet: ('+NoProjet+') '+ProjName;
var message = "No Ligne : "+NoLigne.getValue()+String.fromCharCode(10)+String.fromCharCode(10)+"Reponsable : "+sInitiale.getValue()+String.fromCharCode(10)+"Date : "+sDate.getValue()+String.fromCharCode(10)+"Question : "+String.fromCharCode(10)+sQuestion.getValue()+String.fromCharCode(10)+String.fromCharCode(10)+"************************************"+String.fromCharCode(10)+String.fromCharCode(10)+"Reponsable : "+rInitiale.getValue()+String.fromCharCode(10)+"Date : "+rDate.getValue()+String.fromCharCode(10)+"Réponse : "+String.fromCharCode(10)+rReponse.getValue()
//Browser.msgbox(subject)
Browser.msgBox('SendEmails7')
for (i in data) {
Browser.msgBox('SendEmails8')
var row = data[i];
var emailAddress = row[0]; // First column
Browser.msgBox('SendEmails9')
MailApp.sendEmail(emailAddress, subject, message);
Browser.msgBox('Email sent')
}
}
最佳答案
运行 SIMPLE onEdit()
触发器时,权限会有所不同。相比之下,有一个INSTALLABLE触发器。以下是简单触发器限制的文档:
Google Documentation - Triggers - Restrictions
文档指出:
They (a SIMPLE trigger) cannot access services that require authorization. For example, a simple trigger cannot send an email because the Gmail service requires authorization
您需要设置一个可安装触发器才能发送电子邮件。
在编辑菜单中,选择当前项目触发器。
将您的函数命名为与 onEdit
不同的名称。
关于google-apps-script - MailApp.sendEmail 错误消息 - "do not have permission to call sendEmail",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29041866/
我注意到,如果收件人电子邮件包含“+”号,则 GmailApp.sendEmail 和 MailApp.sendEmail 无法发送电子邮件。 Gmail supports dynamic alias
这个问题已经有答案了: Not allowed to execute sendEmail() from custom function, but OK in script editor (1 个回答)
我创建了一个服务NotifierService class NotifierService { MailService mailService def sendEmail(String
我正在编写一个在整个应用程序生命周期内发送大量电子邮件的应用程序。 用户提示该应用程序真的没有响应,而且通常很慢。我唯一能想到的原因是大量的电子邮件发送。所以我想我可以通过在不同的线程中发送电子邮件来
这个问题在这里已经有了答案: MailApp.sendEmail method doesn't get through to accounts with URL in the body - Mess
我对 MailApp.sendEmail() 有疑问. 我尝试通过 Google 电子表格中的脚本发送电子邮件。我的脚本适用于我的帐户,但不适用于我 friend 的帐户。我收到这条消息: Messa
我想使用 SharePoint 2013 客户端对象模型发送电子邮件 SendEmail-Method ,但我总是收到“必须指定收件人”。错误。我尝试使用不同的电子邮件地址和多个 SharePoint
此方法是查看 Web.CurrentUser 属性以派生“发件人”地址,还是会使用某种 SharePoint 默认系统电子邮件地址?我看不到文档中提到的任何内容: http://msdn.micros
我们已经解决了应用程序脚本最后一个函数中的所有错误,一直到此服务器错误。该脚本用于向客人预订发送电子邮件提醒。 该代码特别破坏了 mailapp 函数(第 27 行)。任何意见将不胜感激! funct
在我的 Jhipster 应用程序中,异步 sendemail() 方法在部署一段时间后停止工作。我认为问题出在异步配置中。有人可以帮助我吗。 下面是我的异步配置代码 public Executo
我正在尝试使用 AWS SES 和 Python 3.7 lambda 函数发送电子邮件。 当我尝试测试该功能并查看它是否发送电子邮件时,我收到一条任务超时的消息。 它到达发送消息的代码部分,但消息始
我正在使用以下内容遍历工作表名称“Charts”上的所有图表,并将它们作为内联图像附加。 在 htmlBody 中,我在需要的地方将每个图表引用为字符串 ChartXString。 var Cha
我有一个应用程序,它将根据先前级别的批准为每个级别创建任务表。在创建每个任务时,我必须将电子邮件发送给所有参与该任务的用户。为此,我使用 SPUtility.SendEmail() 方法。但不幸的是,
emailAddress1=row[0]; emailAddress2=row[1]; MailApp.sendEmail(emailAddress1 + "," + emailAddress2 ,s
我需要询问如何正确使用mailapp.sendemail中的SetTimeOut()函数。 var sendmail2 = date+1*3600000*24; MailApp.sendEmail (
这里发生的事情可能很简单,但我必须先处理它,然后再处理 PHP 的事情。这次我将尝试使用 PHPMailer。 此外,我已经尝试学习如何在本地主机上发送表单大约一周了。现在我将尝试合并 PHPMail
我有这段代码可以使用 Google Apps 脚本发送电子邮件: var message = "Lorem ipsum dolor sit amet, consectetur adipisicing
我在 Google Docs 电子表格中有几个脚本,它们使用 MailApp.sendEmail 发送包含电子表格数据的电子邮件。多年来,他们都出色地工作。大约 2 周前,他们停止发送电子邮件。脚本仍
我正在尝试制作一个应用程序,它会在每次对工作表进行更改时自动向我发送电子邮件。我知道有些通知可以做到这一点,但只有三件事。 我需要在特定的时间和 我需要它到一个特定的电子邮件。 我希望它针对特定范围的
我一直在尝试找到一种方法,将单行数据发送到我在我的域内使用的“实时/运行”电子表格中的特定电子邮件地址,以跟踪卡车司机及其取货号码。我设法使用工作表中提供的 Google Apps 脚本编辑器拼凑了一
我是一名优秀的程序员,十分优秀!