Java SDK

安装

<dependency>
    <groupId>net.sendcloud.sdk</groupId>
    <artifactId>sendcloud-sdk-java</artifactId>
    <version>1.9</version>
</dependency>

请尽量使用包管理工具自动解决依赖问题。如果条件实在不满足,只能通过手动下载JAR包的方式来解决。依赖的第三方库如下

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.14</version>
</dependency>
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpmime</artifactId>
    <version>4.5.14</version>
</dependency>
<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>[20200518,)</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.25</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.10</version>
</dependency>

如何使用

创建接收者对象

MailAddressReceiver receiver = new MailAddressReceiver();  
// ... 添加收件人、抄送、密送

这里你创建了一个MailAddressReceiver对象,并添加了收件人、抄送和密送地址。

创建邮件内容对象

MailBody body = new MailBody();  
// ... 设置邮件内容

你设置了邮件的发送者、发送者名称、回复地址、邮件标题等。

设置邮件内容

TextContent content = new TextContent();  
content.setContent_type(ScContentType.html);  
content.setText("<html><p>helo world</p></html>");

这里你创建了一个TextContent对象,并设置了内容为HTML格式的字符串。

构建SendCloudMail对象

SendCloudMail mail = new SendCloudMail();  
mail.setTo(receiver);  
mail.setBody(body);  
mail.setContent(content);

你将之前创建的接收者、邮件内容和邮件文本内容设置到了SendCloudMail对象中。

Region

CN, SGP, IND

分别是国内、新加坡和印度节点

构建Credential对象

在classpath创建sendcloud.properties配置文件,并按需完善以下配置

api_user_cn = {Your api user}
api_key_cn = {Your api key}
sms_user_cn = {Your sms user}
sms_key_cn = {Your sms key}
api_user_sgp = {Your api user}
api_key_sgp = {Your api key}
api_user_ind = {Your api user}
api_key_ind = {Your api key}
Credential credential = new Credential(SendcloudConfig.getApiUser(), SendcloudConfig.getApiKey());
Credential credential = new Credential("API_USER", "API_KEY");

sendRequestId

mail.setSendRequestId("sendRequestId");

1小时内相同sendRequestId的多次请求只会处理第一次,从而避免重复请求,可以不设置

发送邮件

SendCloud sc = SendCloudBuilder.build();
ResponseData res = sc.sendMail(mail,Region.CN);