2016-07-08 6 views
2

Ich habe die EMail-Einstellungs-API mit vielen Drittanbieter-Tools getestet und scheint eingebettete eingebettete Bilder (Base64) zu entfernen. Allerdings kann die WebGUI eingebettete Bilder in Signaturen mit einigen Browsern erstellen.Neue GMail-API-Signatureinstellungen

Wurde dies in GMAIL API Signaturen verbessert? Wird die neue API eingebettete eingebettete Bilder akzeptieren (oder weiterhin entfernen)?

+0

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). –

+0

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

Antwort

0

Gmail unterstützt keine eingebettete Bildeinbettung für Signaturen, nur Bildverknüpfung.

Im Allgemeinen bietet die API keine Funktionen, die über die von der Benutzeroberfläche bereitgestellten Funktionen hinausgehen.

+0

Ahh das ist falsch. Sie können ein Bild inline einbetten, indem Sie ein bereits inline eingebettetes Bild aus Outlook kopieren und in das Feld "GMail Signaturen" in Chrome einfügen. Wir haben ein ganzes Unternehmen mit integrierten eingebetteten Bildern eingerichtet, wir möchten es nur mit der API und nicht jedem Benutzer manuell machen können. – Dom

0

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:

Gmail Signature Image