我成功使用此topic作为指导,创建了一个脚本来为g-suite域中的用户生成签名。 现在我的问题是,此脚本仅更改“供新电子邮件使用”的签名,但我需要“在回复/转发时使用”签名也要使用此脚本进行更新。
有可能吗?
这是我用作示例的代码,它在撰写新电子邮件时可以更改签名。
function setSignatureWithHTTPRequest(email, signature) {
var signatureSetSuccessfully = false;
var authorizationScope = ['https://www.googleapis.com/auth/gmail.settings.sharing'];
var service = getDomainWideDelegationService("Gmail: ", authorizationScope, email);
if (!service.hasAccess()) {
Logger.log("failed to authenticate as user " + email);
Logger.log(service.getLastError());
signatureSetSuccessfully = service.getLastError();
return signatureSetSuccessfully;
} else {
Logger.log("successfully authenticated as user " + email);
}
var username = email.split("@")[0];
var resource = { signature: signature };
var requestBody = {};
requestBody.headers = {"Authorization": "Bearer " + service.getAccessToken()};
requestBody.contentType = "application/json";
requestBody.method = "PUT";
requestBody.payload = JSON.stringify(resource);
requestBody.muteHttpExceptions = false;
var emailForUrl = encodeURIComponent(email);
var url = "https://www.googleapis.com/gmail/v1/users/me/settings/sendAs/" + emailForUrl;
try {
var setSignatureResponse = UrlFetchApp.fetch(url, requestBody);
signatureSetSuccessfully = true;
Logger.log("setSignatureResponse on successful attempt:" + setSignatureResponse);
} catch (e) {
Logger.log("Set signature with HTTP request failed: " + e);
}
return signatureSetSuccessfully;
}
谢谢。
编辑:只是为了弄清楚我需要什么帮助:在gmail的配置(gmail->出售所有设置)的网络界面中,您可以看到“签名”字段具有两个用于设置签名的选项,“用于新电子邮件”和“在回复/转发中使用”。当我运行脚本时,它会自动仅更改第一个选项(供新电子邮件使用),这意味着每当撰写电子邮件时,它将使用从脚本中创建的正确签名发送,但不会更改第二个选项(回复时) / forward use),这意味着当我回复或转发电子邮件时,除非我手动更改它,否则它将不会使用我创建的签名。