本文介紹aliyun郵件發送 Java SDK的使用
文檔地址:https://help.aliyun.com/document_detail/29459.html?spm=a2c4g.11186623.6.635.28ae3a35TjrYsQ
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 包依賴
<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>
3.配置郵件參數(方便管理,增加代碼複用性)
#郵箱服務器配置,獲取方式參考aliyun郵件發送文檔
ali.email.regionId=
ali.email.accessKeyId=
ali.email.secret=
ali.email.accountName=
ali.email.fromAlias=
4.郵件發送demo(SpringBoot)
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
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 MailApp {
/**
* 配置信息
*/
@Value("${ali.email.regionId}")
private String REGION_ID;
@Value("${ali.email.accessKeyId}")
private String ACCESS_KEY_ID;
@Value("${ali.email.secret}")
private String SECRET;
@Value("${ali.email.accountName}")
private String ACCOUNT_NAME;
@Value("${ali.email.fromAlias}")
private String FROM_ALIAS;
@Before
public void setUp() {
System.out.println("初始化");
}
/**
* 發送郵件
*/
@Test
public void sendMail() {
System.out.println("發送郵件中...");
IClientProfile profile = DefaultProfile.getProfile(REGION_ID, ACCESS_KEY_ID, SECRET);
IAcsClient client = new DefaultAcsClient(profile);
SingleSendMailRequest request = new SingleSendMailRequest();
try {
request.setAccountName(ACCOUNT_NAME);
request.setFromAlias(FROM_ALIAS);
request.setAddressType(1);
request.setToAddress("[email protected]");
request.setReplyToAddress(true);
//可以給多個收件人發送郵件,收件人之間用逗號分開,批量發信建議使用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);
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();
}
}
@After
public void tearDown() {
System.out.println("垃圾回收");
}
}