-1

新しい Gmail API を使用して下書きメッセージを作成するテスト アプリケーションを C# で作成しました。メッセージに添付ファイルがない場合は正常に機能します。

私は IMAP API から移行しており、その API で MailBee.NET コンポーネントを使用しています。MailBee.NET コンポーネントには、RFC 2822 メッセージを生成するクラスが含まれているため、これを再利用し、メッセージを Base64 でエンコードして、ここで説明するように「Raw」プロパティに割り当てました。

https://developers.google.com/gmail/api/guides/drafts

        MailMessage msg = new MailMessage();
        msg.Subject = "test!";
        msg.BodyPlainText = "Test content";
        msg.Attachments.Add(@"D:\Trace.log", "Trace.log", Guid.NewGuid().ToString(), null, null, NewAttachmentOptions.Inline, MailTransferEncoding.Base64);

        Message m = new Message();
        m.Raw = Convert.ToBase64String(msg.GetMessageRawData());

        Draft d = new Draft();
        d.Message = m;
        d = gs.Users.Drafts.Create(d, "me").Execute();

添付ファイルが追加されていない場合は正常に動作しますが、追加された場合は 500 応答で失敗します。

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "backendError",
    "message": "Backend Error"
   }
  ],
  "code": 500,
  "message": "Backend Error"
 }
}

.NET API を使用してこれを行う方法の例を教えてください。APIページの例は非常に必要最小限のものであり、有用な情報をあまり提供しておらず、ドキュメントも優れていません. .NET クライアントに含まれている Message / MessagePart / MessagePartBody クラスを使用するのがおそらく最善ですが、それらの使用に関する明確なガイダンスや例が見つからないため、どこから始めればよいかわかりません。

質問:

1) .NET クライアント内のクラスを使用して添付ファイル付きの下書きメッセージを作成するサンプル コードを提供できる人はいますか?

2) 複数のファイルを添付することはできますか? ドキュメントは全体を通して 1 つのファイルを参照し、マルチパート ガイダンスは正確に 2 つの部分 (メタデータと添付ファイル) を参照します。

4

3 に答える 3

0

これについても: m.Raw = Convert.ToBase64String(msg.GetMessageRawData());

https://www.rfc-editor.org/rfc/rfc4648#section-5の「web セーフ」(別名「url セーフ」) base64 エンコーディング アルファベットを使用していることを確認したい

あなたが言及したURLのドキュメントに記載されているように: """ アプリケーションはdrafts.c​​reateメソッドを使用してドラフトを作成できます。一般的なプロセスは次のとおりです。

RFC 2822 に準拠する MIME メッセージを作成します。メッセージを URL セーフな base64 でエンコードされた文字列に変換します。下書きを作成し、drafts.message.raw フィールドの値をエンコードされた文字列に設定します。"""

Google API は

于 2014-06-27T00:36:14.800 に答える