package foundation.icall.callout.send;
|
|
import java.io.File;
|
import java.util.List;
|
|
import javax.mail.Address;
|
import javax.mail.internet.AddressException;
|
import javax.mail.internet.InternetAddress;
|
import javax.mail.internet.MimeMessage;
|
|
import foundation.dao.DataPackage;
|
import foundation.dao.DataReader;
|
import foundation.dao.bizlogic.DocDescription;
|
import foundation.dao.bizlogic.IRequest;
|
import foundation.io.FileCenter;
|
import foundation.io.object.FileRecord;
|
import foundation.io.template.SendTemplate;
|
import foundation.util.Util;
|
|
public class IMailRequest implements IRequest {
|
|
private SendAction action;
|
private String toAddress;
|
private String body;
|
private MimeMessage message;
|
|
public IMailRequest(SendAction action) {
|
this.action = action;
|
}
|
|
public void build(DataPackage dataPackage) throws Exception {
|
//1. 获取收件地址
|
SendAddress mailAddress = new SendAddress(action.getFieldAddress());
|
toAddress = mailAddress.get(dataPackage);
|
|
//2. 创建邮件内容
|
SendTemplate template = action.getTemplate();
|
body = template.generateFill(dataPackage);
|
}
|
|
public void build(DataReader dataReader, DataPackage dataPackage) throws Exception {
|
//1. 获取收件地址
|
SendAddress mailAddress = new SendAddress(action.getFieldAddress());
|
toAddress = mailAddress.get(dataReader);
|
|
//2. 创建邮件内容
|
SendTemplate template = action.getTemplate();
|
body = template.generateFill(dataPackage);
|
}
|
|
public String getName() {
|
return action.getName();
|
}
|
|
public String getSubject() {
|
return action.getSubject();
|
}
|
|
public String getMailContent() {
|
return body.toString();
|
}
|
|
@Override
|
public String getContentType() {
|
return "text/html;charset=utf-8";
|
}
|
|
@Override
|
public void setContentType(String mediaType) {
|
|
}
|
|
public SendAction getAction() {
|
return action;
|
}
|
|
public Address[] getToAddress() throws AddressException {
|
return InternetAddress.parse(toAddress);
|
}
|
|
public void setMessage(MimeMessage message) {
|
this.message = message;
|
}
|
|
public MimeMessage getMessage() {
|
return message;
|
}
|
|
public File[] getFiles(DataPackage dataPackage) throws Exception {
|
List<String> fileIds = action.getFileIds();
|
int fileCnt = fileIds.size();
|
if (fileCnt == 0) {
|
return null;
|
}
|
|
File[] files = new File[fileCnt];
|
for (int index = 0; index < fileCnt; index++) {
|
String fileId = fileIds.get(index);
|
FileRecord record = FileCenter.getFile("sys_send", fileId);
|
|
if (Util.isEmpty(record.getPath())) {
|
String dataName = dataPackage.getMasterDataObject().getTableName();
|
String dataId = dataPackage.getMasterId();
|
record = FileCenter.getFile(dataName, record.getSenderFieldFileId(), dataId);
|
}
|
|
files[index] = record.getFile();
|
}
|
|
return files;
|
}
|
|
@Override
|
public String getURL() {
|
return null;
|
}
|
|
@Override
|
public void setURL(String string) {
|
}
|
|
@Override
|
public void addHeader(String name, String value) {
|
}
|
|
@Override
|
public void addFormData(String name, String value) {
|
}
|
|
@Override
|
public void addOneParam(String key, String value) {
|
}
|
|
@Override
|
public String getRequestHeader() {
|
return null;
|
}
|
|
@Override
|
public String getRequestBody() {
|
return null;
|
}
|
|
@Override
|
public String getBody() {
|
return null;
|
}
|
|
@Override
|
public DocDescription getDocDescription() {
|
return null;
|
}
|
|
@Override
|
public void setDocDescription(DocDescription docDesciption) {
|
}
|
|
@Override
|
public void setJSONBody(String jsonBody) {
|
|
}
|
}
|