如何检查Salesforce权限集是否授予组织级邮箱地址访问权限
检查Salesforce权限集是否授予组织级邮箱地址访问权限
一、SOQL查询方案
可以通过查询OrgWideEmailAddressShare对象直接获取权限集与组织级邮箱的关联关系,这个对象专门记录各类主体(权限集、用户、角色等)对组织级邮箱的访问权限。
查询特定权限集的访问情况
SELECT Id, OrgWideEmailAddressId, UserOrGroupId, AccessLevel FROM OrgWideEmailAddressShare WHERE UserOrGroupId = '0PSXXXXXXXXXXXX' -- 替换为目标权限集ID
UserOrGroupId:此处传入权限集的IDAccessLevel:权限等级,授予访问权限时通常为Edit
关联查询组织级邮箱名称
SELECT Id, OrgWideEmailAddress.Name, AccessLevel FROM OrgWideEmailAddressShare WHERE UserOrGroupId = '0PSXXXXXXXXXXXX'
二、其他替代方法
1. Apex代码
如果需要批量验证或集成到业务逻辑中,可通过Apex查询OrgWideEmailAddressShare对象:
public static List<OrgWideEmailAddressShare> getOWEAPermissions(String permSetId) { return [ SELECT Id, OrgWideEmailAddress.Name, AccessLevel FROM OrgWideEmailAddressShare WHERE UserOrGroupId = :permSetId ]; }
2. Metadata API
通过Metadata API拉取权限集的元数据,查看externalEmailAddressIds字段,该字段会列出权限集有权访问的所有组织级邮箱ID。示例元数据片段:
<PermissionSet xmlns="http://soap.sforce.com/2006/04/metadata"> <!-- 其他配置字段 --> <externalEmailAddressIds>0D2XXXXXXXXXXXX</externalEmailAddressIds> <externalEmailAddressIds>0D2YYYYYYYYYYYY</externalEmailAddressIds> </PermissionSet>
可使用Workbench、Salesforce CLI等工具获取权限集元数据。
三、关键对象/字段参考
- OrgWideEmailAddressShare:核心关联对象
UserOrGroupId:关联权限集/用户/角色的IDOrgWideEmailAddressId:关联组织级邮箱的IDAccessLevel:权限等级(Edit表示拥有访问权限)
- PermissionSet元数据:
externalEmailAddressIds字段直接存储权限集可访问的组织级邮箱ID列表
内容的提问来源于stack exchange,提问作者JCP
相关产品推荐
相关产品推荐

