我需要的代码将发送电子邮件到一些谷歌邮件帐户,只要有一些数据输入到谷歌电子表格。如果可能的话,我还需要以电子邮件形式呈现数据。电子邮件提醒输入数据到谷歌电子表格不起作用
我已经找到了我的问题在这里How to put a username to the cell , who made the last modification of the row?
的答案,但这个代码出于某种原因没有为我工作。
1我打开谷歌电子表格的脚本编辑器并粘贴代码
2更改电子邮件地址,以适当的一些
3问我授权
4然后,当我输入一些数据在谷歌电子表格中,我有显示 通知,但没有电子邮件
其实有时我收到电子邮件,但并不总是,我不明白为什么它以前工作,因为我没有ch任何东西。
我试图用新的代码创建新的电子表格,但电子邮件通知仍然不起作用。
我查了postini电子邮件防火墙,很明显 - 没有邮件,垃圾邮件文件夹也很清晰。
网上绝对没有关于如何发送电子邮件的数据输入到Google电子表格的简单教程,除了我在开始时发布的问题。
这里是我使用的代码:
function onEdit(event){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = event.source.getActiveSheet();
var r = event.source.getActiveRange();
r.setComment("Last modified: " + (new Date())+' by '+Session.getActiveUser());
ss.toast('Dernière cellule modifiée = '+r.getA1Notation()+' par '+Session.getActiveUser());
}
function alert(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var cell = ss.getActiveCell().getA1Notation()
if(Session.getActiveUser()!='[email protected]'){
MailApp.sendEmail('[email protected]', 'Modification dans le planning', 'la case '+cell+' du document a été modifiée par '+Session.getActiveUser());
}
}
谢谢您的时间和答案。
编辑
经过一番深入调查我写了这个代码。它发送电子邮件,但由于某种原因,电子邮件中没有user.id,只有cell.id。
function sendSimpleTextEmail() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var cell = ss.getActiveCell().getA1Notation();
var user = Session.getActiveUser();
MailApp.sendEmail('[email protected]',user,cell);
}
Munkey,谢谢你的回答。我现在完全失去了,不确定这个代码是我需要的。我只需要输入或编辑单元格中的数据时将发送电子邮件的代码。回答你的问题 - 是的,我换了另一封电子邮件。 – Link 2015-01-31 22:05:31
再次感谢您的回答。此代码仅在[email protected]登录时发送user.id,如果其他用户登录,则发送电子邮件,但不包含user.id,他在电子表格中进行更改。我需要知道谁在电子表格中进行了更改,还需要在电子邮件中更改单元格中的数据。真的很抱歉,第一次没有正确澄清它。现在我发现我发现的代码远没有我需要。 – Link 2015-02-01 10:03:23
经过一番阅读后,我不确定你可以发送电子邮件时触发onEdit。 试图想出一个解决方法。 此外,如果您已经与任何人共享了工作表,并且链接可以查看/修改,那么他们就不需要登录进行修改。 所以不会有用户名或电子邮件发送给你自己。只是一个想法 – Munkey 2015-02-01 12:33:52