Ich weiß nicht, ob es genau Ihre Frage zur Einbettung von Inline-Bild beantwortet, aber ich war in der Lage, ein Bild in die Signatur über HTML mit der neuen Gmail-API einzubetten. Wie Brandon Jewett-Hall in der vorherigen Antwort erwähnt hat, handelt es sich um ein verknüpftes Bild, und Sie müssen dieses Bild auf einem Server hosten. Aber mit einem Google Mail-Konto können Sie die Bilder auf Google Sites kostenlos hosten, indem Sie daran denken, die Seite mit diesen Bildern im Internet öffentlich zu sehen. Wenn Sie über G Suite Basic oder Business verfügen, können Sie mithilfe von Google Apps Script die Signatur aller Nutzer in Ihrer Domain ändern. Siehe diesen Beitrag: 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
Vielleicht kann dieser Beispielcode Ihnen helfen, wenn Sie das Bild über HTML einfügen, wo in der <img src>
Tag ich ein öffentliches Bild auf Wikipedia gehostet verwendet.
Sicherstellen, dass die OAuth2 For Apps Script Bibliothek zu Ihrem Projekt hinzugefügt:
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);
}
Das Ergebnis meiner Unterschrift war:
Sprechen Sie über [E-Mail-Einstellungs-API] (https: //developers.google.com/admin-sdk/email-settings/#manage_signature_settings), können Sie das Dokument zur Signaturverwaltung [Einstellungen] (https://support.google.com/a/answer/175190 ? hl = en). –
Nein Ich spreche von den neuen Änderungen der Google Mail-API, die gerade veröffentlicht wurden. Die Dokumentation beantwortet diese Frage nicht. Darin heißt es: "Google wird die Signatur bereinigen", ohne dass angegeben wird, was HTML ist und was nicht. – Dom