Сообщение вставки API Gmail добавляет дополнительный заголовок «Получено» и показывает время вставки вместо времени получения

1

Он Когда я вставляю сообщение в Gmail, используя его RESTFul api, я загружаю сообщение из rfc822 MimeMessage, это сообщение содержит исходный * "Полученный" * заголовок, который, например, имеет значение Thu, 27 Feb 2014 19:57:07 [CN00 ] (ТИХООКЕАНСКОЕ СТАНДАРТНОЕ ВРЕМЯ). Когда это сообщение вставлено в Gmail, добавляется новый заголовок "Received", и он имеет отметку времени даты, когда он был вставлен, а исходный заголовок не отображается в пользовательском интерфейсе, он представлен в электронном письме, но его значение равно не используется, чтобы показать, когда сообщение было вставлено. Есть ли способ изменить это поведение?

благодаря

Теги:
gmail
gmail-api

3 ответа

1

Вы пытались установить параметр запроса "internalDateSource" на значение "dateHeader" в запросе на вставку? По умолчанию используется "receivedTime", что приведет к описанию функций.

Изображение 174551 Вот ссылка для справки. Информация, которую вы ищете, находится в заголовке "Параметры":
https://developers.google.com/gmail/api/v1/reference/users/messages/insert



После того, как я изменил код, чтобы установить internalDateSource = "dateHeader", исходное значение даты сообщения отображалось в почтовом ящике пользователя Gmail вместо времени, когда сервер получил это сообщение. Я проверил, используя команду before: в строке поиска почтового ящика пользователя, чтобы убедиться, что это сработало.

Изображение 174551

Вот список команд:
https://support.google.com/mail/answer/7190

FWIW, я использую оболочку.NET Client API для API Gmail, поэтому я не звоню REST напрямую. Однако установка свойства в.NET, связанная с этим значением, кажется, делает трюк для меня. Надеюсь, это сработает для вас.

0

Дополнительный принятый заголовок является доброкачественным. Речь идет о том, основана ли внутренняя дата сообщения на заголовке Date или текущей временной отметке. Как вы заметили, в настоящее время он всегда использует текущее время и не позволяет использовать Date.

Вы используете messages.insert или messages.import (или что-то еще, например messages.send)?

Для messages.insert и messages.import (только для текущего почтового ящика), позволяющего внутренней дате быть заголовком "Дата", кажется разумным вариантом. Не для чего-то вроде messages.send, хотя дается возможность подделывать и т.д.

  • 0
    Я пытался использовать и вставить и импортировать, и оба работают одинаково (относительно отметки времени). И если вы можете предоставить возможность использовать метку времени заголовка сообщения вместо текущей, это будет здорово. Спасибо
0

Я считаю, что это по дизайну, даже для почты, получаемой по обычным каналам. Подумайте, что заголовки могут быть подделаны, например, я могу создать электронное письмо, в котором показано, что он был отправлен год назад и отправил его вам прямо сейчас. Хотели бы вы полагаться на (потенциально поддельные или неправильные) заголовки или фактическое время его получения, глядя на ваш почтовый ящик? Так что вы действительно спрашиваете, чтобы изменить время получения электронной почты сервером Google, публичный API GMail не раскрывает эту функциональность.

Это не так плохо, хотя поиск старых импортированных писем использует отправленный заголовок даты, а не заголовок полученной даты, поэтому вы можете фильтровать по временному диапазону.

  • 0
    Поведение Gmail IMAP отличается :) они используют заголовок метки времени из сообщения, которое вы добавляете в хранилище IMAP. Так что, по крайней мере, я ожидаю последовательного поведения.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню