すべてのプロダクト
Search
ドキュメントセンター

Direct Mail:SDK マニュアル

最終更新日:Nov 09, 2025

このトピックでは、Direct Mail のソフトウェア開発キット (SDK) のインストール方法と使用方法について説明します。

Direct Mail API 操作を呼び出すには、OpenAPI Explorer を使用して、クエリ、デバッグ、およびサンプルコードの生成ができます。

プロセスは次のとおりです:

1. OpenAPI Explorer ページに移動

次の例では、メールの送信方法を示します:

メールの送信 (デバッグとコード例)

単一メールの送信:

デバッグとサンプルコードのエントリポイント:

https://api.alibabacloud.com/api/Dm/2015-11-23/SingleSendMail

説明

ループ呼び出しと同時呼び出しがサポートされています。

1 つのリクエストで最大 100 件の受信者アドレスをサポートします。その他のパラメーターの詳細については、「SingleSendMail」をご参照ください。

一括メールの送信:

デバッグとサンプルコードのエントリポイント:

https://api.alibabacloud.com/api/Dm/2015-11-23/BatchSendMail

説明

コンソールで作成した、または API 操作を呼び出して作成したテンプレートと受信者リストを使用して、一括メールを送信できます。その他のパラメーターの詳細については、「BatchSendMail」をご参照ください。

2. API 操作のクエリとパラメーターの指定

推奨されるデフォルトの API バージョン 2015-11-23 を使用できます。バージョン番号は変更されませんが、API 操作は継続的に最適化および更新されます。

image

API 操作ドキュメントを表示できます:

image

3. プログラミング言語の選択とデバッグ

プログラミング言語を選択し、[Initiate Call] をクリックします。

image

4. 呼び出しのサンプルコードの生成

方法 1: Direct Mail SDK の使用

SDK インストールコマンドの取得

テストが成功したら、ローカルマシンまたはテストサーバーに SDK をインストールできます。

SDK Information セクションで、Direct Mail SDK のバージョンとインストールコマンドを表示できます。

image

image

方法 2: CommonRequest の使用

URL の代わりに本文でパラメーターを渡すことができます。これにより、URL が長いためにリクエストがブロックされるのを防ぎます。

一般化された呼び出し 1.0 の例:

# -*- coding:utf-8 -*-
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest
from aliyunsdkcore.auth.credentials import AccessKeyCredential

v_ak='xxxxxx'
v_sk='xxxxxx'
credentials = AccessKeyCredential(v_ak,v_sk)
client = AcsClient(region_id='cn-hangzhou', credential=credentials)

request = CommonRequest()
request.set_accept_format('json')
request.set_domain('dm.aliyuncs.com')
request.set_method('POST')
request.set_protocol_type('https') # https | http
request.set_version('2015-11-23')
request.set_action_name('SingleSendMail')

# request.add_query_param('AccountName', "xxx")
# request.add_query_param('AddressType', "1")
# request.add_query_param('ReplyToAddress', "true")
# request.add_query_param('ToAddress', "xxx")
# request.add_query_param('Subject', "test")
request.add_body_params('AccountName','sender@example.com')
request.add_body_params('FromAlias',"xxx")
request.add_body_params('AddressType',"1")
request.add_body_params('ReplyToAddress',"true")
request.add_body_params('ToAddress',"recipient@example.com")
request.add_body_params('Subject',"Subject")
request.add_body_params('HtmlBody','''<h1>Content</h1>''')
response = client.do_action_with_exception(request)

print(request.get_url('cn-hangzhou',v_ak, v_sk))
print(str(response, encoding = 'utf-8'))
package org.example;

import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;


import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
/*
pom.xml
<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>aliyun-java-sdk-core</artifactId>
  <version>4.6.0</version>
</dependency>
*/

public class QueryBody {
    public static void main(String[] args) throws Exception {

        DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "xxxxxx", "xxxxxx");
        
        IAcsClient client = new DefaultAcsClient(profile);

        CommonRequest request = new CommonRequest();

        request.setSysMethod(MethodType.POST);
        request.setSysDomain("dm.aliyuncs.com");
        request.setSysVersion("2015-11-23");
        request.setSysAction("SingleSendMail");
        request.putBodyParameter("AccountName", "sender@example.com");
        request.putBodyParameter("AddressType", "1");
        request.putBodyParameter("ReplyToAddress", "true");
        request.putBodyParameter("Subject", "11");
        request.putBodyParameter("ToAddress", "recipient@example.com");
        request.putBodyParameter("HtmlBody", getContent());
        try {
            CommonResponse response = client.getCommonResponse(request);
            System.out.println(response.getData());
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }

    }
    private static String getContent() throws Exception {
        String filename = "C:\\Users\\Downloads\\111.txt";
        try {
            String content = new String(Files.readAllBytes(Paths.get(filename)));
            System.out.println("content size is" + getStrKBSize(content) + "B");
            return content;
        } catch (IOException e) {
            e.printStackTrace();
            System.err.println("An error occurred while reading the file: " + e.getMessage());
        }
        return filename;
    }
    private static double getStrKBSize(String str){
        if(str==null){
            return 0.0;
        }
        return str.getBytes().length;
    }
}

C# の例:

C# SDK を使用して長いコンテンツを送信する際のエラー: 'Invalid URI: The Uri string is too long'

リファレンス:

Java 一般化された呼び出し 1.0

Java 一般化された呼び出し 2.0

5. その他の考慮事項

AccessKey ペアの作成

Alibaba Cloud アカウントにログインした後、デバッグページで AccessKey を入力する必要はありません。ただし、ローカルマシンまたはサーバーで SDK を使用する場合は、コードに AccessKey を設定する必要があります。

Alibaba Cloud Resource Access Management (RAM) サービスを使用して作成された AccessKey ペアを使用することもできます。

  1. AccessKey 管理コンソールにログインします。

  2. ページの右上隅にある [Create AccessKey] をクリックします。[Create AccessKey] ダイアログボックスが表示されます。

  3. プロンプトを読み、[OK] をクリックします。

警告

コードに AccessKey ID または AccessKey Secret をハードコーディングしないでください。セキュリティリスクの原因となる可能性があります。

オペレーティングシステムで ALIBABA_CLOUD_ACCESS_KEY_ID と ALIBABA_CLOUD_ACCESS_KEY_SECRET を環境変数として定義できます。Alibaba Cloud SDK は、これらの値を環境変数から取得して ID 検証を行うことができます。詳細については、「認証情報の設定」をご参照ください。