You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过Notes API创建仅允许成员发信的Lotus Domino受限邮件组

解决Lotus Domino邮件组仅允许成员发送邮件的问题

嘿,我看你已经成功用Notes API创建了邮件组,但碰到了非组内成员也能发邮件的问题——这是因为你当前代码里的$Readers字段其实管的是谁能查看这个组的配置文档,不是限制谁能向该组发送邮件哦!

要实现“仅组内成员可向此邮件组发送邮件”的需求,你需要用到Domino组表单里的AllowSendTo字段,这个字段专门用来指定允许向该组发送邮件的对象。把它的值设为你的邮件组名称mymailgroup,Domino就会自动校验发送者身份,只有组内成员才能成功发送邮件到这个组地址。

下面是修改后的完整代码,我标出来了新增的关键行:

class MyGroup { 
    public static void main(String args[]) { 
        Session session = NotesFactory.createSession(host, username, password); 
        Database directory = session.getDatabase(host, "names.nsf"); 
        Document doc = directory.createDocument(); 
        
        doc.appendItemValue("Form", "Group"); 
        doc.appendItemValue("ListName", "mymailgroup"); 
        doc.appendItemValue("ListOwner", "akash"); 
        doc.appendItemValue("LocalAdmin", "administrator"); 
        doc.appendItemValue("InternetAddress", "mymailgroup@abc.com"); 
        doc.appendItemValue("ListDescription", "My mail group"); 
        
        doc.appendItemValue("Members", ""); 
        Item memberList = doc.getFirstItem("Members"); 
        memberList.appendToTextList("member1@abc.com"); 
        memberList.appendToTextList("member2@abc.com"); 
        
        doc.appendItemValue("GroupType", "1"); 
        // 新增:设置允许发送邮件到该组的对象为组本身
        doc.appendItemValue("AllowSendTo", "mymailgroup"); 
        doc.replaceItemValue("$Readers", "mymailgroup"); 
        
        doc.save(); 
    } 
}

补充说明几点:

  • GroupType设为"1"是正确的,对应Domino里的邮件组类型;
  • 如果你不需要限制组配置文档的查看权限,可以去掉$Readers的设置,它和发送限制无关;
  • 确保你的Domino服务器配置没有覆盖这个组级别的发送限制(比如全局允许所有用户发送到任何组的设置),不过默认情况下,只要设置了AllowSendTo,这个限制就会生效。

内容的提问来源于stack exchange,提问作者Akash Gupta

火山引擎 最新活动