【发布时间】:2019-12-02 01:55:11
【问题描述】:
我有许多 SMIME 证书需要上传给每个用户。现在,我正在手动进行,一项一项。问题是,是否可以使用 Apps 脚本或其他方式上传多个 SMIME 证书?
我已尝试浏览 GSuite 管理员,但我无法在那里找到上传多个证书。
感谢您的帮助。
【问题讨论】:
标签: google-apps-script gmail gmail-api smime
我有许多 SMIME 证书需要上传给每个用户。现在,我正在手动进行,一项一项。问题是,是否可以使用 Apps 脚本或其他方式上传多个 SMIME 证书?
我已尝试浏览 GSuite 管理员,但我无法在那里找到上传多个证书。
感谢您的帮助。
【问题讨论】:
标签: google-apps-script gmail gmail-api smime
是的,Gmail API 支持向用户上传 S/MIME 证书。所以在 Appscripts 中,你可以使用smimeInfo() 方法。 您需要您的用户 ID(或输入“我”)和将接收证书的用户的电子邮件地址。 您还必须设置 S/MIME 电子邮件config。
此脚本改编自Quickstart,用于遍历您域的所有用户并将证书上传给每个用户:
function main() {
var optionalArgs = {
customer: 'my_customer',
orderBy: 'email'
};
//Change the string, boolean etc to the parameters of the certificate you have been using.
var smimeObj = {"id": string,
"issuerCn": string,
"isDefault": boolean,
"expiration": long,
"pem": string,
"pkcs12": bytes,
"encryptedKeyPassword": string
};
var userId = 'me';
var response = AdminDirectory.Users.list(optionalArgs);
var users = response.users;
if (users && users.length > 0) {
for (i = 0; i < users.length; i++) {
var user = users[i];
var sendAsEmail = user.primaryEmail;
Gmail.Users.Settings.SendAs.SmimeInfo.insert(smimeObj, userId, sendAsEmail)
}
} else {
Logger.log('No users found.');
}
}
【讨论】: