aliyun郵件發送

本文介紹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("垃圾回收");
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章