Новая политика потоковой передачи Gmail требует обходного пути - как исправить?

Согласно этому объявлению - https://gsuiteupdates.googleblog.com/2019/03/threading-changes-in-gmail-conversation-view.html - электронное письмо с точно такими же от / до и темой больше не будет ветки в Gmail, если электронные письма сгенерированы системой если мы каким-либо образом не ссылаемся на информацию об исходном сообщении в последующих электронных письмах, созданных системой.

Есть ли у кого-нибудь идеи, как это сделать в почте CDO с использованием ASP / VBScript? Я предполагаю, что нам нужно будет вызвать API Google, чтобы получить идентификатор сообщения после того, как он создал сообщение.

Google не смог предоставить никакой помощи помимо языка, использованного в этой статье в блоге, который был следующим:

Дополнительная информация

Если вы управляете системой, которая отправляет пользователям уведомления по электронной почте и хотите, чтобы ваши электронные письма были распределены по цепочкам в представлении беседы Gmail, то вы должны убедиться, что ваши уведомления:

1) Иметь тот же предмет

2) Иметь ссылочные заголовки, которые ссылаются на идентификаторы, увиденные ранее в потоке, или ссылочные заголовки, которые последовательно ссылаются на один и тот же идентификатор сообщения.

Идеи ценятся.


person KBr    schedule 30.04.2019    source источник


Ответы (1)


Я не уверен, зачем вам нужен какой-либо Google API. Похоже, это стандартные заголовки «Ссылки» и «In-Reply-To», которые должны быть в любом ответе по электронной почте. См. раздел 3.6.4 «Поля идентификации» в RFC 5322. Чтобы создать это, вам нужно будет прочитать заголовок Message-ID письма, на которое вы отвечаете, и использовать его в заголовке References.

Просто прочтите идентификатор сообщения электронного письма, на которое вы отвечаете, как любой другой заголовок:

Dim OriginalMessageId as String
OriginalMessageId = originalEmail.Fields.Item("urn:schemas:mailheader:message-id")

И используйте его для создания заголовков ссылок в новом письме:

replyEmail.Fields.Item("urn:schemas:mailheader:references") = OriginalMessageId
replyEmail.Fields.Item("urn:schemas:mailheader:in-reply-to") = OriginalMessageId

Если вам нужно больше указателей на то, как это будет работать, вам может потребоваться добавить больше кода того, как вы читаете сообщение и как вы на него отвечаете.

person Community    schedule 30.04.2019
comment
Привет, Питер, спасибо за чтение и за ответ. Я не совсем понял. ВСЕ наши сообщения с общей темой и с адреса / на адрес - это электронные письма с уведомлениями, сгенерированные системой с использованием CDO. Раньше он был многопоточным, но теперь из-за этого нового требования нет. - person KBr; 01.05.2019
comment
Итак, если вы не добавляете заголовок «Ссылки» в свои ответы, вам необходимо это сделать. Я не уверен, что вам непонятно. - person ; 02.05.2019
comment
Поправьте меня, если ошиблись, но похоже, что нам придется каким-то образом создать базу данных для заголовка Reference, который создается ПОСЛЕ отправки письма №1. Что мне неясно, так это то, что я не уверен, как я прочитал это значение идентификатора сообщения после отправки сообщения CDO - я отправляю с помощью CDO через SMTP-серверы Gmail. Или вы предлагаете мне попытаться назначить этот идентификатор сообщения перед отправкой? Я попытался изучить, как извлечь идентификатор сообщения, но не нашел ничего ясного. Ваша помощь ценится, спасибо. - person KBr; 02.05.2019
comment
Я думаю, вам нужно быть более ясным в своем рабочем процессе ... Вы пытаетесь каким-то образом связать вещи, которые не являются ответом, который вы отправляете? - person ; 03.05.2019
comment
Думаю, да. Мы периодически добавляем заметки по теме из внешней системы, и когда мы это делаем, мы выбираем вариант копирования этой заметки в электронное письмо, которое технически не является ответом, но связано с ним, и поэтому мы хотим, чтобы оно было в ветке. Другой пример - это SMS-разговоры, которые отправляются из внешней системы, и мы хотим, чтобы они выглядели как разговор внутри Gmail. Раньше они цеплялись, теперь - нет. Это помогает? - person KBr; 03.05.2019
comment
Хм. Я не уверен, насколько хорошо будет работать, чтобы попытаться обмануть Gmail, заставив думать, что это ответы, хотя на самом деле это не так, но если вы установите заголовок Message-Id в исходном электронном письме (согласно RFC), а затем поместите это тот же идентификатор в заголовке «Ссылки» в последующих электронных письмах, он может работать так, как вы хотите. - person ; 03.05.2019
comment
Да, очень жаль, что они изменили ситуацию так, как теперь я должен обмануть систему, и что они не сделали ее настраиваемой опцией, чтобы сохранить ее по-старому для нашего домена. Похоже, вы пытаетесь создать значение заголовка Message-ID, я рассмотрю эту возможность. Спасибо. - person KBr; 03.05.2019