泛微OA发送邮件【E8、E9】

9 篇文章 11 订阅
6 篇文章 0 订阅
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:GBK
	        ArrayList<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,然后根据每个参数传的顺序进行排序发送

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值