阿里云邮件发送,工具类
This commit is contained in:
parent
175c4118e4
commit
1547a8fa1b
|
@ -0,0 +1,120 @@
|
|||
package net.maku.email.util;
|
||||
|
||||
import com.aliyun.dm20151123.Client;
|
||||
import com.aliyun.dm20151123.models.BatchSendMailRequest;
|
||||
import com.aliyun.dm20151123.models.SingleSendMailRequest;
|
||||
import com.aliyun.teaopenapi.models.Config;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.maku.email.config.EmailConfig;
|
||||
import net.maku.framework.common.exception.ServerException;
|
||||
|
||||
/**
|
||||
* 阿里云 邮件发送
|
||||
*
|
||||
* @author 阿沐 babamu@126.com
|
||||
* <a href="https://maku.net">MAKU</a>
|
||||
*/
|
||||
@Slf4j
|
||||
public class EmailAliyunUtil {
|
||||
|
||||
private final Client client;
|
||||
|
||||
public EmailAliyunUtil(EmailConfig emailConfig) throws Exception {
|
||||
Config config = new Config();
|
||||
config.setEndpoint(emailConfig.getEndpoint());
|
||||
config.setRegionId(emailConfig.getRegionId());
|
||||
config.setAccessKeyId(emailConfig.getAccessKey());
|
||||
config.setAccessKeySecret(emailConfig.getSecretKey());
|
||||
|
||||
this.client = new Client(config);
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送邮件
|
||||
*
|
||||
* @param from 发件人邮箱
|
||||
* @param formAlias 发件人昵称
|
||||
* @param tos 收件人邮箱列表,多个收件人逗号隔开
|
||||
* @param subject 邮件主题
|
||||
* @param content 邮件内容
|
||||
* @param isHtml 是否HTML格式
|
||||
* @return env-id
|
||||
*/
|
||||
public String sendEmail(String from, String formAlias, String tos, String subject, String content, boolean isHtml) {
|
||||
SingleSendMailRequest request = new SingleSendMailRequest();
|
||||
|
||||
// 发件人邮箱
|
||||
request.setAccountName(from);
|
||||
|
||||
// 发件人昵称
|
||||
request.setFromAlias(formAlias);
|
||||
|
||||
// 地址类型:0-为随机账号,1-为发信地址
|
||||
request.setAddressType(1);
|
||||
|
||||
// 使用管理台配置的回信地址
|
||||
request.setReplyToAddress(true);
|
||||
|
||||
// 收件人邮箱
|
||||
request.setToAddress(tos);
|
||||
|
||||
// 邮件主题
|
||||
request.setSubject(subject);
|
||||
|
||||
// 是否HTML
|
||||
if (isHtml) {
|
||||
request.setHtmlBody(content);
|
||||
} else {
|
||||
request.setTextBody(content);
|
||||
}
|
||||
|
||||
// 是否开启追踪功能,开启需要备案,0关闭,1开启
|
||||
request.setClickTrace("0");
|
||||
|
||||
try {
|
||||
return client.singleSendMail(request).getBody().getEnvId();
|
||||
} catch (Exception e) {
|
||||
log.error("发送邮件失败", e);
|
||||
throw new ServerException(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量发送邮件
|
||||
*
|
||||
* @param from 发件人邮箱
|
||||
* @param receiversName 收件人列表名称
|
||||
* @param templateName 邮件模板
|
||||
* @param tagName 邮件标签
|
||||
* @return env-id
|
||||
*/
|
||||
public String batchSendEmail(String from, String receiversName, String templateName, String tagName) {
|
||||
BatchSendMailRequest request = new BatchSendMailRequest();
|
||||
|
||||
// 发件人邮箱
|
||||
request.setAccountName(from);
|
||||
|
||||
// 收件人列表名称
|
||||
request.setReceiversName(receiversName);
|
||||
|
||||
// 邮件模板
|
||||
request.setTemplateName(templateName);
|
||||
|
||||
// 地址类型:0-为随机账号,1-为发信地址
|
||||
request.setAddressType(1);
|
||||
|
||||
// 标签
|
||||
request.setTagName(tagName);
|
||||
|
||||
// 是否开启追踪功能,开启需要备案,0关闭,1开启
|
||||
request.setClickTrace("0");
|
||||
|
||||
try {
|
||||
return client.batchSendMail(request).getBody().getEnvId();
|
||||
} catch (Exception e) {
|
||||
log.error("发送邮件失败", e);
|
||||
throw new ServerException(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user