Я не знаю, отвечает ли он именно на ваш вопрос о встраивании встроенного изображения, но я смог встроить изображение в подпись через HTML, используя новый API Gmail. Как упоминал в предыдущем ответе Brandon Jewett-Hall, это связанное изображение, и вам нужно разместить это изображение на сервере. Но с учетной записью gmail вы можете бесплатно размещать изображения на сайтах Google, не забывая оставить страницу, содержащую эти изображения, общедоступной в Интернете. Если у вас есть G Suite Basic или Business, вы можете использовать Google Apps Script для изменения подписи всех пользователей в вашем домене. См. Это сообщение: How to use the Gmail API, OAuth2 for Apps Script, and Domain-Wide Delegation to set email signatures for users in a G Suite domain
Возможно, этот пример кода может помочь вам при вставке изображения через HTML, где в теге <img src>
я использовал общедоступный образ, размещенный в Википедии.
Убедитесь, что OAuth2 For Apps Script библиотека добавляется к вашему проекту:
function gmailSignatureImage() {
var email = '[email protected]'
var service = getDomWideDelegationService('Gmail: ', 'https://www.googleapis.com/auth/gmail.settings.basic', email);
var resource = { signature: '<div><strong>My signature image</strong></div>' +
'<div><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/2f/Google_2015_logo.svg/251px-Google_2015_logo.svg.png" '+
'alt="" border="0" /></div>' };
var requestBody = {};
requestBody.headers = {'Authorization': 'Bearer ' + service.getAccessToken()};
requestBody.method = "PUT";
requestBody.contentType = "application/json";
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;
var setSignatureResponse = UrlFetchApp.fetch(url, requestBody);
}
// these two things are included in the .JSON file that you download when creating the service account and service account key
var OAUTH2_SERVICE_ACCOUNT_PRIVATE_KEY = '-----BEGIN PRIVATE KEY-----\nxxxxxxxxxxxxxxxxxxxxx\n-----END PRIVATE KEY-----\n';
var OAUTH2_SERVICE_ACCOUNT_CLIENT_EMAIL = 'xxxxxxxxxxxxxxxxxxxxx.iam.gserviceaccount.com';
function getDomWideDelegationService(serviceName, scope, email) {
Logger.log('starting getDomainWideDelegationService for email: ' + email);
return OAuth2.createService(serviceName + email)
// Set the endpoint URL.
.setTokenUrl('https://accounts.google.com/o/oauth2/token')
// Set the private key and issuer.
.setPrivateKey(OAUTH2_SERVICE_ACCOUNT_PRIVATE_KEY)
.setIssuer(OAUTH2_SERVICE_ACCOUNT_CLIENT_EMAIL)
// Set the name of the user to impersonate. This will only work for
// Google Apps for Work/EDU accounts whose admin has setup domain-wide
// delegation:
// https://developers.google.com/identity/protocols/OAuth2ServiceAccount#delegatingauthority
.setSubject(email)
// Set the property store where authorized tokens should be persisted.
.setPropertyStore(PropertiesService.getScriptProperties())
// Set the scope. This must match one of the scopes configured during the
// setup of domain-wide delegation.
.setScope(scope);
}
Результатом моей подписи была такова:
![Gmail Signature Image](https://i.stack.imgur.com/RA98O.png)
Вы говорите о [Настройки электронной почты API] (HTTPS: //developers.google.com/admin-sdk/email-settings/#manage_signature_settings), вы можете проверить документ о том, как управлять сигнатурой [настройки] (https://support.google.com/a/answer/175190 ? = гл ен). –
Нет. Я говорю о новых изменениях API Gmail, которые были выпущены. Документация не отвечает на этот вопрос. В нем говорится, что «Google будет дезинфицировать подпись» без указания того, какой html является и не разрешен. – Dom