2017-12-19 40 views
-1

Google APIを使用してインライン画像を送信するにはどうすればよいですか? Kindyは何が欠落しているか教えてください。Gmail APIでインライン画像を送信する

String email = 
        "Content-Type: multipart/related; boundary:\"multipart_related_boundary\"\r\n" + 
            "MIME-Version: 1.0\r\n" + 
            FROM_ME + 
            TO + toAddress + "\r\n" + 
            SUBJECT + "welcome" + "\r\n" 
            + "--multipart_related_boundary" + "\r\n" + 
            "Content-type: image/gif; name=\"083.gif\"\r\n" + 
            "MIME-Version: 1.0\r\n" + 
            "Content-ID: <083.gif>\r\n" + 
            "Content-Disposition: inline\r\n" 
            + "--multipart_related_boundary" + "\r\n" + 
            "MIME-Version: 1.0\r\n" + 
            "Content-Type: text/html; charset=utf-8\r\n" + 
            CONTENT_TRANSFER_ENCODING_QUOTED_PRINTABLE + 
            "<html><body><img src=\"cid:083.gif\"/> welcome " + 
            "</body></html>\r\n\r\n"; 

    byte[] converted = Base64.encodeBase64(email.getBytes()); 

    String encodedStr = new String(converted); 
    encodedStr = encodedStr.replace("/", "_").replace("+", "-"); 

    MediaType mediaType = MediaType.parse(APPLICATION_JSON); 
    RequestBody body = RequestBody.create(mediaType, RAW + encodedStr + END_BRACKET); 

    Request request = new Request.Builder() 
        .url(HTTPS_WWW_GOOGLEAPIS_COM_GMAIL_V1_USERS_ME_MESSAGES_SEND).post(body) 
        .addHeader(AUTHORIZATION, 
            BEARER + gmailAuthService.getRefreshToken(token).getAccessToken()) 
        .addHeader(CONTENT_TYPE, "multipart/related; boundary:\"multipart_related_boundary\"").build(); 

    Response response = okHttpClient.newCall(request).execute(); 

最後に私のGmailでは、私はインラインイメージを見ることができません。

答えて

1

MIMEメッセージのイメージセクションは含まれていますが、イメージ自体は含まれていません。

Content-ID: <083.gif>Content-Disposition: inline headersの後に、実際の画像を含める必要があります。具体的には、そのセクションにContent-Transfer-Encoding: base64ヘッダーを追加し、base64でエンコードされたイメージペイロードを含めることをお勧めします。

どのように動作するのかを簡単に確認するには、Gmailを使用して小さな画像で簡単なテストメールを自分宛に送信することです。次に、Gmail(Web UI)でメッセージオプション(返信ボタンの近く)に移動し、「オリジナルを表示」を選択します。これは、MIMEメッセージがどのように構築されているかを正確に示します。

関連する問題