一、创建 Access Key
登录你的阿里云账号,进入管理控制台。进入 RAM 访问控制页面,新建一个子用户,给子用户添加 AliyunDirectMailFullAccess 权限。关于权限具体看对应的文档,很容易就能找到
二、安装 Java SDK
开发环境
阿里云 Java SDK 支持 JDK1.6 以上的环境
配置好 JDK1.6 以上的环境
配置好 maven 的运行环境,保证能使用 mvn 命令
SDK 下载
- 直接下载: http://aliyundm.oss-cn-hangzhou.aliyuncs.com/example/aliyun-java-sdk-dmV3.1.0.zip 。
- 下载到本地自己能找到的路径,最好是路径名不带中文的。
1. SDK 安装 在解压的文件中可以找到 aliyun-java-sdk-dm-3.0.0-rc1.jar 和 aliyun-java-sdk-core-3.0.0.jar 包。
2. 打开命令行窗口,通过 maven 的 mvn 命令将俩 jar 安装到本地仓库,命令的示例如下:
mvn install:install-file -Dfile=W:\temp\aliyun-java-sdk-dmV3.1.0\aliyun-java-sdk-core-3.0.0.jar -DgroupId=com.aliyun.core -DartifactId=aliyun-java-sdk-core-3.0.0 -Dversion=3.0.0 -Dpackaging=jar
- install-file -Dfile:你解压的文件 jar 的路径
3. 检查本地仓库里是否有新安装的 jar 包
4. Eclipse 的 maven 项目添加该依赖
5.测试邮件发送
// 如果是除杭州region外的其它region(如新加坡、澳洲Region),需要将下面的"cn-hangzhou"替换为"ap-southeast-1"、或"ap-southeast-2"。
IClientProfile profile = DefaultProfile.getProfile("cn-shanghai", "LTAI4FtChc4rKJEXRd56K6rw", "SaNquE1pga9O5KvKwunYqEnmRxstOd");
// 如果是除杭州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("发信人昵称");
request.setAddressType(1);
request.setTagName("控制台创建的标签");
request.setReplyToAddress(true);
request.setToAddress("目标地址");//目标地址
//可以给多个收件人发送邮件,收件人之间用逗号分开,批量发信建议使用BatchSendMailRequest方式
//request.setToAddress("邮箱1,邮箱2");
request.setSubject("邮件主题");
request.setHtmlBody("邮件正文");
//开启需要备案,0关闭,1开启
//request.setClickTrace("0");
//如果调用成功,正常返回httpResponse;如果调用失败则抛出异常,需要在异常中捕获错误异常码;错误异常码请参考对应的API文档;
SingleSendMailResponse httpResponse = client.getAcsResponse(request);
System.out.println(JsonUtils.objectToJson(httpResponse));
} catch (ServerException e) {
//捕获错误异常码
System.out.println("ErrCode : " + e.getErrCode());
e.printStackTrace();
}
catch (ClientException e) {
//捕获错误异常码
System.out.println("ErrCode : " + e.getErrCode());
e.printStackTrace();
}
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于