2

彼 RESTFul api を使用して Gmail にメッセージを挿入すると、rfc822 MimeMessageからメッセージが読み込まれます。このメッセージには、元の *"Received"* ヘッダーが含まれています。たとえば、値はThu, 27 Feb 2014 19:57:07 -0800 (PST) . このメッセージが Gmail に挿入されると、新しい「Received」ヘッダーが追加され、挿入された時点の日時スタンプが付けられ、元のヘッダーは UI に表示されず、メールに表示されますが、その値はメッセージがいつ挿入されたかを示すために使用されません。この動作を変更する方法はありますか?

ありがとう

4

3 に答える 3

2

挿入リクエストで「internalDateSource」クエリ パラメータを値「dateHeader」に設定しようとしましたか? デフォルトでは、説明した機能を引き起こす「receivedTime」を使用します。

ここに画像の説明を入力 参考リンクはこちらです。お探しの情報は、「パラメーター」ヘッダーの下にあります:
https://developers.google.com/gmail/api/v1/reference/users/messages/insert



コードを変更して internalDateSource = "dateHeader" を設定すると、サーバーがメッセージを受信した時間ではなく、メッセージの元の日付の値がユーザーの Gmail メールボックスに表示されました。ユーザーのメールボックスの検索バーでbefore:コマンドを使用してテストし、機能することを確認しました。

ここに画像の説明を入力

コマンドのリストは次のとおりです:
https://support.google.com/mail/answer/7190

FWIW、私は Gmail API に .NET クライアント API ラッパーを使用しているため、REST 呼び出しを直接行っていません。ただし、この値に関連する.NETでプロパティを設定すると、うまくいくようです。うまくいけば、これはうまくいくでしょう。

于 2015-11-11T17:49:32.213 に答える
0

通常の経路で受信したメールであっても、これは仕様によるものだと思います。ヘッダーが偽造される可能性があることを考慮してください。たとえば、1 年前に送信されたことを示す電子メールを作成し、今それを送信できます。受信トレイを見るときに、(偽または間違っている可能性のある) ヘッダー、または実際に受信された時刻に依存しますか? したがって、あなたが本当に求めているのは、メールが Google のサーバーによって受信された時刻を変更することです。パブリック GMail API はその機能を公開していません。

それほど悪くはありませんが、古いインポートされた電子メールの検索では、受信日ヘッダーではなく送信日ヘッダーが使用されるため、時間範囲でフィルタリングすることもできます.

于 2014-08-04T17:42:48.660 に答える