Oi,
Estamos usando sendgrid para anexar arquivos iCal (ics) junto com o corpo do e-mail. Podemos definir o tipo de conteúdo como “texto / calendário” para o arquivo ics, no entanto, não é possível definir o cabeçalho adicional "método = PEDIDO", o que faz com que os clientes de e-mail não reconheçam o anexo como um evento de calendário.
Será possível definir cabeçalhos personalizados para cada anexo?
Cumprimentos
Olá @mindnuts ,
Eu não tenho certeza se entendi. Deixe-me ter certeza de que entendi:
Obrigado!
@thinkingserious
Ao criar o objeto de e-mail, estamos criando a matriz de arquivos a la e definindo "contentType" como "text / calendar" para arquivos .ics. Para que os arquivos ics sejam detectados corretamente pelo Outlook, o anexo também deve ter o método = REQUEST definido no cabeçalho.
Content-Type: text/calendar; charset=UTF-8; method=REQUEST
Isso será possível no cliente sendgrid?
Você pode compartilhar o código que está usando para definir este cabeçalho?
@thinkingserious aqui vai:
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);
});
Aqui está o cabeçalho gerado pelo Sendgrid para este anexo:
Content-Disposition: attachment; filename="calendar.ics"
Content-Transfer-Encoding: base64
Content-Type: text/calendar; charset=utf-8; name="calendar.ics"
O que eu gostaria de ter é (REQUEST é apenas um exemplo):
Content-Type: text/calendar; charset=utf-8; method=REQUEST; name="calendar.ics"
Obrigado, esse exemplo é muito útil.
Você tentou apenas definir o cabeçalho diretamente com o parâmetro headers
?
@thinkingserious Não quero definir o cabeçalho do e-mail, quero poder definir o cabeçalho personalizado do anexo (arquivo .ics no meu caso) adicionado ao e-mail.
Cumprimentos
M
Obrigado pela atualização, isso faz sentido.
Isso não será mais um problema com a biblioteca v3. Por enquanto, a única maneira de definir esse cabeçalho é por meio de SMTPAPI: https://github.com/sendgrid/smtpapi-nodejs
@thinkingserious Obrigado pela sua resposta. Qual é o ETA para V3?
Não deve demorar mais do que alguns meses.
@mindnuts ,
Estamos agora a algumas semanas de distância. Você pode verificar o endpoint v3 / mail / send aqui: https://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/index.html e a nova versão desta biblioteca aqui: https : //github.com/sendgrid/sendgrid-nodejs/tree/v3beta
Obrigado por seu apoio!
Olá @thinkingserious ,
Acho que todo mundo ainda está esperando por uma solução, eu também!
Também gostaria de definir o método como REQUEST e encontrar o problema.
Você tem uma atualização? Já se passaram 2 meses!
Obrigado,
Tenha um bom dia,
Jérémy
Ei, @thinkingserious ,
Ainda estou bloqueado devido a este problema!
Você tem alguma atualização ? Qualquer solução ?
Obrigado,
Jérémy
Mais uma vez,
Nós realmente precisamos disso!
+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"
}
}
}
Estou esquecendo de algo? Qual é a solução proposta? porque isso está fechado?
@pascalopitz ,
Este não deveria ter sido fechado. Obrigado pelo aviso.
Mais uma vez,
Olá @ataraxido ,
Esse problema está no roteiro do produto, mas não sei quando ele será entregue.
Recentemente, recebemos alguns novos votos para este recurso. Sempre que isso acontece, eu atualizo a equipe do produto para ajudar a superar a prioridade.
Obrigado pela atenção,
Elmer
@thinkingserious Só queria acrescentar que esse é um recurso muito importante para nós também. Alguma atualização no roteiro do produto?
Concordo, @hdornier , acrescentarei sua voz ao problema. Obrigado por votar!
@thinkingserious , você mencionou que isso pode ser feito com smtpapi. Você tem um exemplo disso? Qual parte do smtpapi? Uma simples substituição de algum tipo?
Olá @ e99cog ,
Não sei por que disse isso anteriormente :(
Não sei se isso vai funcionar usando o SMTPAPI, mas aqui está um exemplo de como ele é usado.
Obrigado pela atenção,
Elmer
+1 aqui também
No final, eu tive que resolver esse problema usando mailgun e o endpoint message.mime que ele tem, já que me permite enviar o mime explicitamente.
O sendgrid oferece esse recurso em alguma API?
Ei, pessoal!
Sou Matt, gerente de produto de experiência do desenvolvedor da SendGrid. Estou interessado em aprender mais sobre o que você precisa dos tipos MIME. Normalmente fazemos isso como um hangout do Google, para que eu possa aprender sobre seu caso de uso e os detalhes de que você precisa.
Fique à vontade para reservar um tempo na minha agenda - https://calendly.com/matt-bernier/mail-send-mime-types
Obrigado!!
precisa lidar com isso para um próximo projeto também - há um status sobre isso? Já se passaram 2 anos.
+1
Qualquer hora prevista de chegada para isso?
Também estou muito interessado nisso. Certamente, deve ser possível chegar a uma resposta agora.
Eu não quero amaldiçoar as coisas, mas um birdy me disse que estamos _super_ perto de implantar isso :) Estarei postando uma atualização aqui quando estiver no ar.
Olá pessoal!
Estou SUPER ANIMADO em anunciar que esse problema foi resolvido e que a correção está em produção! Faça um teste e me avise se você tiver mais problemas.
Obrigado por sua paciência com este aqui!
Obrigado pela atenção,
Elmer
@thinkingserious Essa é uma ótima notícia! Você pode ajudar a entender quais etapas tomar a seguir? Foi fornecido suporte para cabeçalho adicional> método = PEDIDO?
Olá @thinkingserious
Acabei de tentar e ainda recebo um erro (usando a API):
{"errors": [{"message": "O tipo de anexo não pode conter ';' ou caracteres CRLF.", "field": "attachments.0.type", "help": " http: // sendgrid. com / docs / API_Reference / Web_API_v3 / Mail / errors.html # message.attachments.type "}, {" message ":" O tipo de anexo não pode conter ';' ou caracteres CRLF. "," field ":" anexos. 1.type "," help ":" http://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/errors.html#message.attachments.type "}]}
Aqui está o que estou fazendo usando a API API:
$ attachment-> setType ('text / calendar; charset = "UTF-8"; método = REQUEST');
Tem certeza de que o problema foi resolvido? O que deveríamos fazer ?
Obrigado
@ataraxido funciona para mim
"attachments": [{
"content": "QkVHSU46....EQVINCg==",
"type": "text/calendar; method=REQUEST",
"filename": "file1.ics"
}]
Devolveu 202 e o correio foi enviado
Ei @ataraxido, você não precisará especificar o conjunto de caracteres, pois o SendGrid anexará automaticamente este campo (o mesmo se aplica a text / html, text / plain). Tente novamente e nos diga se isso resolve 🤞
@ataraxido ,
Onde você consegue fazer isso funcionar?
Olá @abhilashabhatia ,
Sim, agora você pode fazer "type": "text/calendar; method=REQUEST"
. Por favor, deixe-me saber se você tiver algum problema.
Olá @thinkingserious
Consegui enviar o método "header" = REQUEST, mas não consegui enviar um ICS embutido que funciona bem no Outlook.
Mesmo em linha com este "cabeçalho" personalizado, o evento lembra um ICS anexado.
Acho que é um caso de uso bastante amplo para todos os seus clientes; você teria um exemplo de trabalho ou um how-to?
Obrigado
+1 para o comentário de @ataraxido - podemos obter um exemplo @thinkingserious
@ataraxido @tetreault ,
Só para esclarecer, o envio como anexo funciona no Outlook, mas não inline?
Isso agora está em nossa lista de pendências e criei um problema caso alguém na comunidade gostaria de oferecer um PR.
@thinkingserious, na verdade, o ICS está embutido no e-mail, mas o Outlook o considera como um anexo, portanto, ele tem o comportamento / exibição esperado de um evento embutido de e-mail.
Estou me perguntando por que, tentei muitas coisas. Acho que pode ser porque você força os itens embutidos a serem codificados em base64, enquanto o embutido ICS típico está em 7bits.
Olá @ataraxido ,
Obrigado pela elaboração, acho que você deve saber algo sobre a codificação.