html - tutorial - secuencia de comandos google sheets



No se pueden mostrar imágenes incrustadas en HTML utilizando la API de Gmail+rieles (1)

Estoy creando una aplicación, en la que estoy recuperando correos electrónicos de Gmail utilizando la API de Gmail .

En un correo electrónico hay 1 imagen incrustada directamente en el cuerpo del correo electrónico (imagen en línea no adjunta). Puedo extraer la parte de texto / html y se muestra correctamente en el navegador, pero en el caso de una imagen en línea, muestra una imagen rota.

En la etiqueta de la imagen se muestra como

<img src=\"cid:ii_jfi5vwc30_1628627122d12121\" width=\"454\" height=\"255\">

Se está dando la identificación del contenido en lugar de la URL de la imagen en src . ¿Alguien sabe cómo debo mostrar la imagen en línea usando cid en la página del navegador? ¿Cómo debo obtener una imagen en formato base64 desde cid ?


cid: se utiliza como una forma de referirse a una imagen adjunta a un correo electrónico de varias partes, de modo que la imagen es un archivo adjunto en el correo electrónico en lugar de estar incrustada en línea en el correo electrónico. Esto significa que para mostrar su imagen, debe buscar qué archivo adjunto contiene la imagen de referencia.

Su URL cid corresponde a un encabezado MIME de ID de contenido que se ve así:

Content-ID: <ii_jfi5vwc30_1628627122d12121>

La API de Gmail debería haberle dado una respuesta que se parece a esto:

{
  "parts": [
    // ... other parts ...
    {
      "partId": "1",
      "mimeType": "image/png",
      "filename": "",
      "headers": [
        {
          "name": "Content-ID",
          "value": "<ii_jfi5vwc30_1628627122d12121>"
        },
        {
          "name": "Content-Type",
          "value": "image/png"
        },
        {
          "name": "Content-Transfer-Encoding",
          "value": "base64"
        }
      ],
      "body": {
        "size": 9999,
        "data": "R0lGODlhGAGgAPEAAP...(the original base64 encoded image)",
      }
    }
    // ... other parts ...
  ]
  // ... rest of response ...
}

Para mostrar la imagen, deberá retroceder por el objeto de respuesta y encontrar el header con un name de Content-ID y un value de ii_jfi5vwc30_1628627122d12121 , y luego analizar el objeto para leer su body.data , que Es la imagen codificada en base64 que deseas.

Si la respuesta no incluye esta parte, significa que el correo electrónico original tenía un formato incorrecto o que la imagen asociada no estaba adjunta correctamente al correo electrónico de alguna manera, y entonces no tiene suerte y no hay manera de renderizar la imagen original .





gmail-api