mirror of
https://gitee.com/dromara/sms4j.git
synced 2025-12-06 17:08:40 +08:00
update 发送附件适配网络文件
This commit is contained in:
parent
4216f3e191
commit
0d28d36895
@ -0,0 +1,9 @@
|
|||||||
|
package org.dromara.email.comm.constants;
|
||||||
|
|
||||||
|
import lombok.AccessLevel;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||||
|
public class FileConstants {
|
||||||
|
public static final String IO_FILE_TYPE = "application/octet-stream";
|
||||||
|
}
|
||||||
@ -5,8 +5,10 @@ import cn.hutool.core.io.IoUtil;
|
|||||||
import cn.hutool.core.lang.UUID;
|
import cn.hutool.core.lang.UUID;
|
||||||
import cn.hutool.core.map.MapUtil;
|
import cn.hutool.core.map.MapUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import cn.hutool.http.HttpUtil;
|
||||||
import org.dromara.email.api.MailClient;
|
import org.dromara.email.api.MailClient;
|
||||||
import org.dromara.email.api.Parameter;
|
import org.dromara.email.api.Parameter;
|
||||||
|
import org.dromara.email.comm.constants.FileConstants;
|
||||||
import org.dromara.email.comm.entity.MailMessage;
|
import org.dromara.email.comm.entity.MailMessage;
|
||||||
import org.dromara.email.comm.errors.MailException;
|
import org.dromara.email.comm.errors.MailException;
|
||||||
import org.dromara.email.comm.utils.HtmlUtil;
|
import org.dromara.email.comm.utils.HtmlUtil;
|
||||||
@ -325,7 +327,13 @@ public class MailService implements MailClient {
|
|||||||
String v = entry.getValue();
|
String v = entry.getValue();
|
||||||
// 设置附件消息部分
|
// 设置附件消息部分
|
||||||
MimeBodyPart messageBodyPart = new MimeBodyPart();
|
MimeBodyPart messageBodyPart = new MimeBodyPart();
|
||||||
DataSource source = new FileDataSource(v);
|
DataSource source;
|
||||||
|
if (v.startsWith("http")) {
|
||||||
|
byte[] bytes = HttpUtil.downloadBytes(v);
|
||||||
|
source = new ByteArrayDataSource(bytes, FileConstants.IO_FILE_TYPE);
|
||||||
|
}else {
|
||||||
|
source = new FileDataSource(v);
|
||||||
|
}
|
||||||
messageBodyPart.setDataHandler(new DataHandler(source));
|
messageBodyPart.setDataHandler(new DataHandler(source));
|
||||||
messageBodyPart.setFileName(k);
|
messageBodyPart.setFileName(k);
|
||||||
multipart.addBodyPart(messageBodyPart);
|
multipart.addBodyPart(messageBodyPart);
|
||||||
@ -338,7 +346,7 @@ public class MailService implements MailClient {
|
|||||||
ByteArrayOutputStream os = new ByteArrayOutputStream();
|
ByteArrayOutputStream os = new ByteArrayOutputStream();
|
||||||
ZipUtils.zipFilePip(files, os);
|
ZipUtils.zipFilePip(files, os);
|
||||||
ByteArrayInputStream stream = IoUtil.toStream(os);
|
ByteArrayInputStream stream = IoUtil.toStream(os);
|
||||||
DataSource source = new ByteArrayDataSource(stream, "application/octet-stream");
|
DataSource source = new ByteArrayDataSource(stream, FileConstants.IO_FILE_TYPE);
|
||||||
messageBodyPart.setDataHandler(new DataHandler(source));
|
messageBodyPart.setDataHandler(new DataHandler(source));
|
||||||
messageBodyPart.setFileName(StrUtil.isNotBlank(zipName) ? zipName : UUID.fastUUID() + ".zip");
|
messageBodyPart.setFileName(StrUtil.isNotBlank(zipName) ? zipName : UUID.fastUUID() + ".zip");
|
||||||
multipart.addBodyPart(messageBodyPart);
|
multipart.addBodyPart(messageBodyPart);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user