首页 邮件推送 SDK 参考 Java SDK 手册

Java SDK 手册

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

创建Access Key

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

  1. 登录 Access Key 管理控制台

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

  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代码示例。

openAPI

(不推荐)旧版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”为收件人列表名称。

阿里云首页 邮件推送 相关技术圈