首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从组邮件(组中的组)应用程序脚本中提取组邮件,然后从电子邮件中提取组邮件

从组邮件(组中的组)应用程序脚本中提取组邮件,然后从电子邮件中提取组邮件
EN

Stack Overflow用户
提问于 2015-10-01 09:26:17
回答 1查看 1.5K关注 0票数 0

我正在编写一个脚本,包括从一个组获得成员,脚本标识邮件是组邮件还是成员电子邮件,但是,在我的工作中,我们有分组组!

这是剧本

代码语言:javascript
复制
function getGroupUsers() {
var group = sheet.getActiveRange().getValue();
var members = AdminDirectory.Members.list(group).members;
for (var i = 1; i < members.length; i++) {
  var member = members[i];
  var caseUser = sheet.getRange(i+1, 1);
  var caseGroupe = sheet.getRange(i+1, 2);   

  var lastRange = sheet.getRange(sheet.getLastRow(), 3);
//  var caseGroupe2 = sheet.getRange(i+1, 4);

switch (member.type) {
    case 'USER':
      Logger.log('%s is a user', member.email);
      caseUser.setValue(member.email);
      break;
    case 'GROUP':
      Logger.log('%s is a group', member.email);
      //var group = GroupsApp.getGroupByEmail(member.email);
      caseGroupe.setValue(member.email);
      break;
    default:
      Logger.log('nothing');
  }

这就是工作原理,作为第二列中的组,但我需要自动扩展它们,就像我在开始时使用循环时所做的那样,但我不知道它如何工作,我尝试了循环,但是当我得到这个组的成员时,只有一个是用这种情况编写的,而不是所有的。

如果你需要更多的信息,或者你需要我解释一个你不确定能理解的观点,就告诉我

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-02 19:20:51

我稍微修改了你的代码。您提到的在循环中执行循环的方法是正确的。

我做了一些类似的事情,但是没有在循环中有一个循环,而是创建了一个新函数,然后递归地调用它。这是为了处理这样的情况:一个组将有另一个组,而另一个组将有另一个组作为成员。

代码语言:javascript
复制
function getGroup(){
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var cell = sheet.getActiveCell();
  var group = sheet.getActiveCell().getValue();  
  var subgroup = 1;
  getMembers(group, subgroup, cell, sheet);  
  cell.activate();  
}


function getMembers(group, subgroup, cell, sheet)
{
  var col =  cell.getColumn() +subgroup;
  var row =  cell.getRow() +1;
  try{  
    var members = AdminDirectory.Members.list(group).members;
    if(!members)
    {
      return 0; 
    }
  }
  catch (e)
  {
    return;
  }
  var offset = 0;
  for(var member in members){
    var newcell = sheet.getRange(row++,col);
    newcell.setValue(members[member].email);    
    if(members[member].type == 'GROUP'){
      newcell.activate();
      offset = getMembers(members[member].email,subgroup , sheet.getActiveCell() ,sheet);
      row = row + offset;
    }
  }
  return  member.length + offset;
}

我希望这对你想做的事有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32883992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档