文档

Java SDK 手册

更新时间:
一键部署
重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

本文介绍了如何安装和使用Java SDK。

创建AccessKey

(注:也可以使用阿里云访问控制服务创建的AccessKey。)

  1. 登录AccessKey管理控制台

  2. 单击页面右上角按钮创建 AccessKey,弹出创建对话框。

  3. 阅读《API使用规范》后,单击同意并创建

(推荐)安装 Java SDK

开发环境

阿里云Java SDK支持J2SE Development Kit (JDK) 1.6或以上版本。

SDK 安装

通过 Maven 进行安装

1、添加Maven库

您可以在openAPI页面,“SDK信息”获取新版本号。

<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>dm20151123</artifactId>
  <version>1.0.x</version>
</dependency>

2、跳转到openAPI进行调试,选择开发语言,填写参数,下载自动生成的代码(会包含参数值)。

调试页面无须填写Key值。

警告

请勿在代码中硬编码"accessKeyId","accessKeySecret"值,以免泄露。

阿里云SDK支持在操作系统的环境变量中定义ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET的值,代码中从环境变量获取后进行鉴权,参考文档:身份验证配置

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

image.png

(不推荐)旧版SDK安装方式

SDK 下载

SDK 安装

手动安装

1、在解压的文件中可以找到aliyun-java-sdk-dm-3.1.0.jar 和 aliyun-java-sdk-core-3.0.0.jar包。

2、以Eclipse导入JAR包为例:在Eclipse上右键点击Project,再单击Properties> Java Build Path> Libraries> Add External JARs(netbeans和intellij 等其他 idea 用户请自行按照相应导入 JAR 包的方法导入)。

3、选择以上JAR包,点击OK按钮。

经过以上步骤,您就可以在工程中使用阿里云Java SDK了。

通过Maven进行安装

1、添加Maven库

<repositories>
     <repository>
             <id>sonatype-nexus-staging</id>
             <name>Sonatype Nexus Staging</name>
             <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
             <releases>
                     <enabled>true</enabled>
             </releases>
             <snapshots>
                    <enabled>true</enabled>
             </snapshots>
     </repository>
</repositories>

2、添加JAR包

     <dependencies>
         <dependency>
             <groupId>com.aliyun</groupId>
             <artifactId>aliyun-java-sdk-core</artifactId>
             <version>3.0.0</version>
         </dependency>
         <dependency>
             <groupId>com.aliyun</groupId>
             <artifactId>aliyun-java-sdk-dm</artifactId>
             <version>3.1.0</version>
         </dependency>
     </dependencies>

发送邮件示例

调用单一发信 API 示例,如何调用此接口,请参见 SingleSendMail

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dm.model.v20151123.SingleSendMailRequest;
import com.aliyuncs.dm.model.v20151123.SingleSendMailResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;

public class Sample {

    public void singleSendMail() {
        // 如果是除杭州region外的其它region(如新加坡、澳洲Region),需要将下面的"cn-hangzhou"替换为"ap-southeast-1"、或"ap-southeast-2"。
        //请在环境变量中配置ALIBABA_CLOUD_ACCESS_KEY_ID,ALIBABA_CLOUD_ACCESS_KEY_SECRET。
        //参考文档:https://help.aliyun.com/document_detail/2361895.html
        IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        // 如果是除杭州region外的其它region(如新加坡region), 需要做如下处理
        //try {
        //DefaultProfile.addEndpoint("dm.ap-southeast-1.aliyuncs.com", "ap-southeast-1", "Dm",  "dm.ap-southeast-1.aliyuncs.com");
        //} catch (ClientException e) {
        //e.printStackTrace();
        //}
        IAcsClient client = new DefaultAcsClient(profile);//建议初始化一次就可以,初始化多次也不影响功能,但是性能有损失
        SingleSendMailRequest request = new SingleSendMailRequest();
        try {
            //request.setVersion("2017-06-22");// 如果是除杭州region外的其它region(如新加坡region),必须指定为2017-06-22
            request.setAccountName("控制台创建的发信地址");
            request.setFromAlias("发信人昵称");//发信人昵称,长度小于15个字符。
            request.setAddressType(1);//0:为随机账号 1:为发信地址
            request.setTagName("控制台创建的标签");
            request.setReplyToAddress(true);// 是否启用管理控制台中配置好回信地址(状态须验证通过),取值范围是字符串true或者false
            request.setToAddress("目标地址");
            //可以给多个收件人发送邮件,收件人之间用逗号分开,批量发信建议使用BatchSendMailRequest方式
            //request.setToAddress("邮箱1,邮箱2");
            request.setSubject("邮件主题");
            //如果采用byte[].toString的方式的话请确保最终转换成utf-8的格式再放入htmlbody和textbody,若编码不一致则会被当成垃圾邮件。
            //注意:文本邮件的大小限制为3M,过大的文本会导致连接超时或413错误
            request.setHtmlBody("邮件正文");
            //SDK 采用的是http协议的发信方式, 默认是GET方法,有一定的长度限制。
            //若textBody、htmlBody或content的大小不确定,建议采用POST方式提交,避免出现uri is not valid异常
            request.setMethod(MethodType.POST);
            //开启需要备案,0关闭,1开启
            //request.setClickTrace("0");
            //如果调用成功,正常返回httpResponse;如果调用失败则抛出异常,需要在异常中捕获错误异常码;错误异常码请参考对应的API文档;
            SingleSendMailResponse httpResponse = client.getAcsResponse(request);
        } catch (ServerException e) {
            //捕获错误异常码
            System.out.println("ErrCode : " + e.getErrCode());
            e.printStackTrace();
        }
        catch (ClientException e) {
            //捕获错误异常码
            System.out.println("ErrCode : " + e.getErrCode());
            e.printStackTrace();
        }
    }
}

单击这里获取更多Java SDK的使用提示。

另调用模板批量发信请使用BatchSendMailRequest,相关修改

request.setTemplateName("test模板");
request.setReceiversName("测试-test");

其中“test模板”为模板名称;“测试-test”为收件人列表名称。

  • 本页导读 (0)
文档反馈