Sendgrid-nodejs: настраиваемый заголовок для вложения

Созданный на 28 мар. 2016  ·  41Комментарии  ·  Источник: sendgrid/sendgrid-nodejs

Привет,

Мы используем sendgrid для прикрепления файлов iCal (ics) вместе с телом письма. Мы можем установить тип содержимого «текст / календарь» для файла ics, однако невозможно установить дополнительный заголовок «method = REQUEST», который заставляет почтовые клиенты не распознавать вложение как событие календаря.

Можно ли будет установить собственные заголовки для каждого вложения?

С Уважением

non-library issue

Все 41 Комментарий

Привет @mindnuts!

Я не уверен, что понимаю. Позвольте мне убедиться, что я понимаю:

  1. У вас есть электронное письмо с вложением iCal
  2. Вы хотите добавить заголовок к этому электронному письму (например, X-Header: method = Request)
  3. Прямо сейчас нельзя добавить дополнительный заголовок. Что ты пробовал?

Спасибо!

@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 ,

Спасибо за разъяснения, я думаю, вы могли кое-что узнать о кодировке.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

thinkingserious picture thinkingserious  ·  4Комментарии

amlcodes picture amlcodes  ·  4Комментарии

wooyah picture wooyah  ·  4Комментарии

danielflippance picture danielflippance  ·  4Комментарии

mikemaccana picture mikemaccana  ·  4Комментарии