E8 版本发送邮件
import weaver.general.SendMail;import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;public class Mail {public static void main(String[] args){// 发送邮件SendMail sm = new SendMail();String from = "jinshan.wu@xxx"; // 邮件的发件人参数String to = "wumei.li@xxx"; // 邮件的收件人参数,多个收件人之间用逗号隔开String cc = ""; // 邮件的抄送人参数,多个抄送人之间用逗号隔开String bcc = ""; // 邮件的暗送人参数,多个暗送人之间用逗号隔开String subject = ""; // 邮件的主题参数(采用ISO8859编码格式)String body = "测试"; // 邮件的正文参数(采用ISO8859编码格式)int char_set = 1; // 编码方式 1:iso-8859-1 2:big5 3:GBKArrayList<String> filenames = new ArrayList<String>(); // 所有附件的名称,用ArrayList存放,与内容一一对应filenames.add("test.pdf");ArrayList<InputStream> filecontents = new ArrayList<InputStream>(); // 所有附件内容的输入流InputStream ,用ArrayList存放,与名称一一对应InputStream is = null;try {is = new FileInputStream(new File("/file/01.xls"));} catch (FileNotFoundException e) {e.printStackTrace();}filecontents.add(is);String priority = "3"; // 邮件的重要性参数 3:普通 2:重要 4:紧急sm.send(from,to,cc,bcc,subject,body,priority);boolean flag = sm.sendMiltipartHtml(from,to,cc,bcc,subject,body,char_set,filenames,filecontents,priority);}
}
E9版本 发送邮件
使用 weaver.email.EmailWorkRunnable.java
如果是使用流程、会议等邮件提醒功能:
注意事项:1、必须要在 应用中心-》邮件–》邮件基本设置–》群发参数设置,正确配置了
提醒邮箱。此邮箱作为发件人。
问题排查方法:
1、要确认配置通过了群发邮箱。2。确认被提醒人邮箱正确填写。
3、在应用中心-邮件-邮件基本设置-群发日志 中,记录了发送失败记录和原因,可查看相关
原因。(基本设置中如果开启了“记录发送成功日志”,则发送成功的也会有记录。
使用方法(二次开发也可以使用):
可用参数
sendTo = “”; //收件人,邮箱地址,多地址时用英文逗号分隔
sendCc = “”; //抄送人,邮箱地址,多地址时用英文逗号分隔
sendBcc = “”; //密送人,邮箱地址,多地址时用英文逗号分隔
subject = “”; //主题,纯文本
content = “”; //内容。纯文本或html字符串。(换行用
)
priority = “3”; // 邮件的重要性参数 3:普通 2:重要 4:紧急
线程方式发送: (支持版本:E8,E9)
new Thread(new EmailWorkRunnable(sendTo, subject, content)).start();
注意:此方式需要配置群发参数(发件人)。
一次发送很多邮件时,避免线程过多,可使用线程池方式发送。(支持版本:E9)
EmailWorkRunnable.threadModeReminder(sendTo, subject, content);
或
EmailWorkRunnable.threadModeReminder(sendTo, sendCc, sendBcc, subject,
content);
阻塞式发送,同步获取发送结果方式:(支持版本:E9)
EmailWorkRunnable ewr = new EmailWorkRunnable(sendTo, subject,
content);
boolean result = ewr.emailCommonRemind(); //result:true投递成功,false
投递失败
注意:此方式需要配置群发参数(发件人)。
发送附件 相关参数(E9) KB900200200及以上版本:
添加附件有如下四种方式,最终是并集发送。 可根据情况使用其中一种或多种组合。
一般情况下,如流程附件,或知识中文档附件,可直接使用 文档id 或者 附件id方法,如
docIds 和 imagefileids
Map<String,String> filename_path = new HashMap<String,String>();//附件map<附件名,附件
路径> OA服务器上的文件路径
Map<String,InputStream> filename_stream = new HashMap<String,InputStream>();//附件map<
附件名,附件流>
String docIds = “”;//文档id,多个时英文逗号分隔,每个文档对应一个附件,并且会取文档最高
version版本的记录,多个附件的话不适用这种方式
String imagefileids = “”;//imagefile表记录id,多个时英文逗号分隔
调用发件之前,根据需要,将值set进对象即可。
1、这四个参数只要传了值,并且能正常获取到文件流,就可发送附件。如传
filename_path,但是根据路径找不到相关附件,会抛出异常并且发件失败。
2、关于附件发送顺序,若只set一个类型的附件参数,若是docIds 或imagefileids,是按
字符串的顺序发送,若传的是filename_path或filename_stream,则是按map 遍历顺序
来排序,若传多个附件参数,顺序邮箱级别是filename_path ,filename_stream ,
docIds ,imagefileids,然后根据每个参数传的顺序进行排序发送