Привет,
Мы используем sendgrid для прикрепления файлов iCal (ics) вместе с телом письма. Мы можем установить тип содержимого «текст / календарь» для файла ics, однако невозможно установить дополнительный заголовок «method = REQUEST», который заставляет почтовые клиенты не распознавать вложение как событие календаря.
Можно ли будет установить собственные заголовки для каждого вложения?
С Уважением
Привет @mindnuts!
Я не уверен, что понимаю. Позвольте мне убедиться, что я понимаю:
Спасибо!
@thinkingserious
При создании объекта электронной почты мы создаем массив файлов а-ля и устанавливаем "contentType" на "text / calendar" для файлов .ics. Чтобы файлы ics правильно распознавались Outlook, вложения также должны иметь в заголовке параметр method = REQUEST.
Content-Type: text/calendar; charset=UTF-8; method=REQUEST
Будет ли это возможно в клиенте sendgrid?
Не могли бы вы поделиться кодом, который вы используете для этого заголовка?
@thinkingserious, вот и все:
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);
});
Вот заголовок, сгенерированный Sendgrid для этого вложения:
Content-Disposition: attachment; filename="calendar.ics"
Content-Transfer-Encoding: base64
Content-Type: text/calendar; charset=utf-8; name="calendar.ics"
Я бы хотел (ЗАПРОС - всего лишь пример):
Content-Type: text/calendar; charset=utf-8; method=REQUEST; name="calendar.ics"
Спасибо, этот пример очень полезен.
Вы пробовали просто установить заголовок напрямую с помощью параметра headers
?
@thinkingserious Я не хочу устанавливать заголовок электронного письма, я хочу иметь возможность установить настраиваемый заголовок для вложения (файл .ics в моем случае), добавленного к электронному письму.
С Уважением
M
Спасибо за обновление, это имеет смысл.
Это больше не будет проблемой с библиотекой v3. На данный момент единственный способ установить этот заголовок - через SMTPAPI: https://github.com/sendgrid/smtpapi-nodejs
@thinkingserious Спасибо за ваш ответ. Какое расчетное время прибытия для V3?
Должно быть не более нескольких месяцев.
@mindnuts ,
До нас осталось несколько недель, вы можете проверить конечную точку v3 / mail / send здесь: https://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/index.html и новую версию этой библиотеки здесь: https : //github.com/sendgrid/sendgrid-nodejs/tree/v3beta
Спасибо за поддержку!
Привет @thinkingserious ,
Думаю, все еще ждут решения, и я тоже!
Я также хотел бы установить метод ЗАПРОС и столкнуться с проблемой.
У вас есть обновление? Прошло 2 месяца!
Спасибо,
Хорошего дня,
Джереми
Привет, @thinkingserious ,
Я все еще заблокирован из-за этой проблемы!
Есть ли у вас какие-либо обновления ? Любое решение?
Спасибо,
Джереми
Опять же, @thinkingserious , вы планируете решить эту проблему в ближайшее время?
Нам это очень нужно!
+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"
}
}
}
Я что-то упускаю? Какое предлагаемое решение? почему это закрыто?
@pascalopitz ,
Это не должно было быть закрыто. Спасибо за внимание.
Опять @thinkingserious вы
Привет @ataraxido ,
Эта проблема находится в дорожной карте продукта, но я не знаю, когда она будет доставлена.
Недавно мы получили несколько новых голосов за эту функцию. Каждый раз, когда это происходит, я обновляю команду разработчиков, чтобы повысить приоритетность.
С наилучшими пожеланиями,
Элмер
@thinkingserious Просто хотел добавить, что это действительно важная функция для нас. Есть ли обновления в дорожной карте продукта?
Согласен @hdornier , добавлю ваш голос к вопросу. Спасибо, что нашли время проголосовать!
@thinkingserious , вы упомянули, что это можно сделать с помощью smtpapi. У вас есть такой пример? Какая часть smtpapi? Простая подмена какая то?
Привет @ e99cog!
Я не уверен, почему я сказал это раньше :(
Я не знаю, будет ли это работать с использованием SMTPAPI, но вот пример того, как он используется.
С наилучшими пожеланиями,
Элмер
+1 и здесь
В конце концов, мне пришлось решить эту проблему, используя mailgun и конечную точку message.mime, которая у него есть, поскольку она позволяет мне явно отправлять mime.
Предлагает ли sendgrid эту функцию в каком-либо API?
Привет всем!
Я Мэтт, менеджер по продукту для разработчиков в SendGrid. Мне интересно узнать больше о том, что вам нужно от типов MIME. Обычно мы делаем это на видеовстрече в Google, чтобы я мог узнать о вашем варианте использования и особенностях того, что вам нужно.
Пожалуйста, выберите время в моем календаре - https://calendly.com/matt-bernier/mail-send-mime-types
Спасибо!!
нужно обработать это и для предстоящего проекта - есть ли статус по этому поводу? Прошло 2 года.
+1
Есть какое-нибудь расчетное время прибытия для этого?
Меня это тоже очень интересует. Несомненно, уже возможно дать ответ.
Я не хочу ругать вещи, но птичка говорит мне, что мы _супер_ близки к развертыванию этого :) Я опубликую здесь обновление, как только оно появится.
Всем привет!
Я СОВЕРШЕННО рад сообщить, что эта проблема решена и исправление находится в стадии разработки! Пожалуйста, попробуйте и дайте мне знать, если у вас возникнут дополнительные проблемы.
Спасибо за терпение!
С наилучшими пожеланиями,
Элмер
@thinkingserious Это отличная новость! Можете ли вы помочь понять, что делать дальше? Была ли предоставлена поддержка для дополнительного заголовка> method = REQUEST?
Привет @thinkingserious
Я только что попробовал, но все равно получаю ошибку (используя API):
{"errors": [{"message": "Тип вложения не может содержать символы ';' или CRLF.", "field": "attachments.0.type", "help": " http: // sendgrid. com / docs / API_Reference / Web_API_v3 / Mail / errors.html # message.attachments.type "}, {" message ":" Тип вложения не может содержать символы ';' или CRLF. "," field ":" вложения. 1.type "," help ":" http://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/errors.html#message.attachments.type "}]}
Вот что я делаю с помощью API API:
$ attachment-> setType ('текст / календарь; charset = "UTF-8"; method = REQUEST');
Вы уверены, что проблема решена? Что нам делать ?
Спасибо
@ataraxido у меня работает
"attachments": [{
"content": "QkVHSU46....EQVINCg==",
"type": "text/calendar; method=REQUEST",
"filename": "file1.ics"
}]
Вернул 202 и письмо было отправлено
Привет, @ataraxido, вам не нужно указывать кодировку, поскольку SendGrid автоматически добавит это поле (то же самое относится к text / html, text / plain). Сделайте еще один шанс и дайте нам знать, поможет ли это 🤞
@ataraxido ,
Где можно заставить это работать?
Привет @abhilashabhatia ,
Да, теперь вы можете делать "type": "text/calendar; method=REQUEST"
. Пожалуйста, дайте мне знать, если у вас возникнут какие-либо проблемы.
Привет @thinkingserious
Мне удалось отправить «header» method = REQUEST, но я не смог отправить встроенный ICS, который отлично работает в Outlook.
Даже в соответствии с этим настраиваемым «заголовком» событие напоминает подключенный ICS.
Я думаю, что это довольно широкий вариант использования для всех ваших клиентов; у вас есть рабочий пример или практические советы?
Спасибо
+1 к комментарию @ataraxido - можно ли получить пример @thinkingserious
@ataraxido @tetreault ,
Чтобы уточнить, отправка как вложения работает в Outlook, но не встроена?
Теперь это в нашей очереди, и я создал проблему на случай, если кто-то в сообществе захочет предложить PR.
@thinkingserious на самом деле ICS встроен в электронное письмо, но Outlook рассматривает его как вложение, поэтому он имеет ожидаемое поведение / отображение встроенного события электронной почты.
Интересно почему, много чего перепробовал. Я думаю, это может быть из-за того, что вы заставляете встроенные элементы кодироваться в base64, тогда как типичное встраивание ICS - 7 бит.
Привет @ataraxido ,
Спасибо за разъяснения, я думаю, вы могли кое-что узнать о кодировке.