Sendgrid-nodejs: encabezado personalizado para un archivo adjunto

Creado en 28 mar. 2016  ·  41Comentarios  ·  Fuente: sendgrid/sendgrid-nodejs

Hola,

Estamos usando sendgrid para adjuntar archivos iCal (ics) junto con el cuerpo del correo. Podemos establecer el tipo de contenido en "texto / calendario" para el archivo ics, sin embargo, no es posible establecer un encabezado adicional "método = SOLICITUD" que hace que los clientes de correo electrónico no reconozcan el archivo adjunto como un evento de calendario.

¿Será posible establecer encabezados personalizados para cada archivo adjunto?

Saludos

non-library issue

Todos 41 comentarios

Hola @mindnuts ,

No estoy seguro de entender. Déjame asegurarme de que entiendo:

  1. Tiene un correo electrónico con un archivo adjunto de iCal
  2. Desea agregar un encabezado a ese correo electrónico (por ejemplo, X-Header: method = Request)
  3. Ahora mismo no puede agregar un encabezado adicional. ¿Qué intentaste?

¡Gracias!

@pensamientosserios

Mientras creamos el objeto de correo electrónico, estamos creando la matriz de archivos a la y configurando "contentType" en "text / calendar" para los archivos .ics. Para que Outlook detecte correctamente los archivos ics, el archivo adjunto también debe tener el método = REQUEST establecido en el encabezado.

Content-Type: text/calendar; charset=UTF-8; method=REQUEST

¿Será esto posible en el cliente sendgrid?

¿Puede compartir el código que está utilizando para establecer este encabezado?

@thinkingserious aquí tienes:

var sendgrid  = require('sendgrid')('YOUR_SENDGRID_API_KEY');

var email = new sendgrid.Email({
  to:       '[email protected]',
  from:     '[email protected]',
  subject:  'Hello World',
  html: 'My first email <b>through SendGrid.</b>',
  text:     'My first email through SendGrid.'
});

email.addFile({
  filename: 'calendar.ics',
  path: './calendar.ics',
  contentType: 'text/calendar'
});

sendgrid.send(email, function(err, json) {
  if (err) { return console.error(err); }
  console.log(json);
});

Aquí está el encabezado generado por Sendgrid para este adjunto:

Content-Disposition: attachment; filename="calendar.ics"
Content-Transfer-Encoding: base64
Content-Type: text/calendar; charset=utf-8; name="calendar.ics"

Lo que me gustaría tener es (SOLICITUD es solo un ejemplo):

Content-Type: text/calendar; charset=utf-8; method=REQUEST; name="calendar.ics"

Gracias, ese ejemplo es muy útil.

¿Ha intentado configurar el encabezado directamente con el parámetro headers ?

@thinkingserious No quiero configurar el encabezado del correo electrónico, quiero poder configurar el encabezado personalizado para el archivo adjunto (archivo .ics en mi caso) agregado al correo electrónico.

Saludos
METRO

Gracias por la actualización, tiene sentido.

Esto ya no será un problema con la biblioteca v3. Por ahora, la única forma en que puede configurar ese encabezado es a través de SMTPAPI: https://github.com/sendgrid/smtpapi-nodejs

@thinkingserious Gracias por tu respuesta. ¿Cuál es la ETA para V3?

No debería ser más de unos pocos meses.

@mindnuts ,

Ahora estamos a unas semanas, puede consultar el punto final v3 / mail / send aquí: https://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/index.html y la nueva versión de esta biblioteca aquí: https : //github.com/sendgrid/sendgrid-nodejs/tree/v3beta

¡Gracias por su apoyo!

Hola @thinkingserious ,

Supongo que todo el mundo sigue esperando una solución, ¡yo también!
También me gustaría configurar el método para SOLICITAR y encontrar el problema.

Tienes una actualización ? ¡Han pasado 2 meses!

Gracias,
Que tenga un lindo día,
Jérémy

Hola @thinkingserious ,

¡Todavía estoy bloqueado debido a este problema!
Tienes alguna novedad ? Alguna solución ?

Gracias,
Jérémy

Una vez más
¡Realmente lo necesitamos!

+1

response: {
      "statusCode": 400,
      "body": {
        "errors": [
          {
            "message": "The attachment type cannot contain ';', or CRLF characters.",
            "field": "attachments.0.type",
            "help": "http://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/errors.html#message.attachments.type"
          }
        ]
      },
      "headers": {
        "server": "nginx",
        "date": "Wed, 01 Mar 2017 04:43:59 GMT",
        "content-type": "application/json",
        "content-length": "216",
        "connection": "close",
        "x-frame-options": "DENY",
        "access-control-allow-origin": "https://sendgrid.api-docs.io",
        "access-control-allow-methods": "POST",
        "access-control-allow-headers": "Authorization, Content-Type, On-behalf-of, x-sg-elas-acl",
        "access-control-max-age": "600",
        "x-no-cors-reason": "https://sendgrid.com/docs/Classroom/Basics/API/cors.html"
      }
    }
}

¿Me estoy perdiendo de algo? ¿Cuál es la solución propuesta? ¿Por qué está esto cerrado?

@pascalopitz ,

Éste no debería haberse cerrado. Gracias por el aviso.

Una vez más

Hola @ataraxido ,

Este problema está en la hoja de ruta del producto, pero no sé cuándo se entregará.

Recientemente, hemos recibido algunos votos nuevos para esta función. Siempre que eso sucede, actualizo el equipo de producto para ayudar a aumentar la prioridad.

Con los mejores deseos,

Elmer

@thinkingserious Solo quería agregar que esta también es una característica muy importante para nosotros. ¿Alguna actualización sobre la hoja de ruta del producto?

De acuerdo @hdornier ,

@thinkingserious , mencionaste que esto se puede hacer con smtpapi. ¿Tienes un ejemplo de esto? ¿Qué parte del smtpapi? ¿Una simple sustitución de algún tipo?

Hola @ e99cog ,

No estoy seguro de por qué dije eso anteriormente :(

No sé si esto funcionará usando SMTPAPI, pero aquí hay un ejemplo de cómo se usa.

Con los mejores deseos,

Elmer

+1 aquí también

Al final, tuve que resolver este problema usando mailgun y el punto final message.mime que tiene, ya que me permite enviar el mime explícitamente.

¿Sendgrid ofrece esta función en alguna API?

¡Hola a todos!

Soy Matt, el Gerente de Producto de Experiencia de Desarrollador en SendGrid. Estoy interesado en aprender más sobre lo que necesita de los tipos MIME. Por lo general, hacemos esto como un hangout de Google, para que pueda aprender sobre su caso de uso y los detalles específicos de lo que necesita.

No dude en tomar una hora en mi calendario: https://calendly.com/matt-bernier/mail-send-mime-types

¡¡Gracias!!

Necesito manejar esto para un próximo proyecto también. ¿Hay un estado en esto? Han pasado 2 años.

+1
¿Alguna ETA para esto?

También estoy muy interesado en esto. Seguramente, ya debe ser posible encontrar una respuesta.

No quiero maldecir las cosas, pero un pájaro me dice que estamos _super_ cerca de implementar esto :) Publicaré una actualización aquí una vez que esté disponible.

¡Hola, todos!

¡Estoy SUPER EMOCIONADO de anunciar que este problema se ha resuelto y que la solución ya está en producción! Pruébelo y avíseme si tiene algún otro problema.

¡Gracias por tu paciencia con este!

Con los mejores deseos,

Elmer

@thinkingserious ¡ Es una gran noticia! ¿Puede ayudarme a comprender qué pasos tomar a continuación? ¿Se ha proporcionado soporte para encabezado adicional> método = SOLICITUD?

Hola @thinkingserious

Lo intenté y todavía recibo un error (usando la API):

{"errors": [{"message": "El tipo de archivo adjunto no puede contener ';' o caracteres CRLF.", "field": "attachments.0.type", "help": " http: // sendgrid. com / docs / API_Reference / Web_API_v3 / Mail / errors.html # message.attachments.type "}, {" message ":" El tipo de adjunto no puede contener ';' o caracteres CRLF. "," field ":" adjuntos. 1.type "," help ":" http://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/errors.html#message.attachments.type "}]}

Esto es lo que estoy haciendo usando la API API:

$ adjunto-> setType ('texto / calendario; charset = "UTF-8"; método = SOLICITUD');

¿Estás seguro de que el problema está resuelto? Qué debemos hacer ?

Gracias

@ataraxido me funciona
"attachments": [{ "content": "QkVHSU46....EQVINCg==", "type": "text/calendar; method=REQUEST", "filename": "file1.ics" }]

Devuelto 202 y se envió el correo

Hola @ataraxido , no necesitarás especificar el juego de caracteres, ya que SendGrid agregará automáticamente este campo (lo mismo se aplica a text / html, text / plain). Dale otra oportunidad y avísanos si eso funciona 🤞

@ataraxido ,

¿Dónde puedes hacerlo funcionar?

Hola @abhilashabhatia ,

Sí, ahora puedes hacer "type": "text/calendar; method=REQUEST" . Por favor, avíseme si tiene algún problema.

Hola @thinkingserious

He podido enviar el método de "encabezado" = SOLICITUD pero no he podido enviar un ICS en línea que funciona bien dentro de Outlook.
Incluso en línea con este "encabezado" personalizado, el evento recuerda un ICS adjunto.

Creo que es un caso de uso bastante amplio para todos sus clientes; ¿tendrías un ejemplo práctico o un instructivo?

Gracias

+1 al comentario de @ataraxido - ¿podemos obtener un ejemplo @thinkingserious

@ataraxido @tetreault ,

Solo para aclarar, el envío como archivo adjunto funciona en Outlook, pero no en línea.

Esto ahora está en nuestro backlog y he creado un problema en caso de que alguien en la comunidad quisiera ofrecer un PR.

@thinkingserious en realidad, el ICS está integrado en el correo electrónico, pero Outlook lo considera como un archivo adjunto, por lo que tiene el comportamiento / visualización esperado de un evento en línea de correo electrónico.
Me pregunto por qué, intenté muchas cosas. Creo que podría deberse a que obliga a que los elementos en línea se codifiquen en base64, mientras que la inserción típica de ICS es de 7 bits.

Hola @ataraxido ,

Gracias por la elaboración, creo que podría estar en algo con respecto a la codificación.

¿Fue útil esta página
0 / 5 - 0 calificaciones