我们的老板想要使用OpenNTF中的FileExplorer小部件,以便他们可以将电子邮件拖到文件系统,以便与他人共享。他们已经在不同的系统中拥有此类消息的宝库,因此使用共享的Notes邮件文件被确定为不可接受的解决方案。他们喜欢FileExplorer,但对电子邮件以主题行命名感到失望。他们已经请求mod在文件名前添加FROM和DATE值。
我已经编写了一个在CopyFileJob.java文件中使用的修改,并且认为CopyFilesJob类的copy方法中的以下行将处理重命名。
if (source.isFile()) {
// only check about modifying filename if it's a file to copy
final File dest = new File(fDest.getAbsolutePath() + File.separator + modifyEmailFilename(source.getName()));
...
它调用的代码相对简单,因为电子邮件文件是格式化文本。
public static String modifyEmailFilename( String filename ) {
try {
int extensionCheck = filename.indexOf(".eml");
if ( extensionCheck >= 0 ) {
String fromResult = "";
String dateResult = "";
String fromString = "From:";
String dateString = "Date:";
Scanner sc = new Scanner (new File (filename));
while (sc.hasNextLine()) {
String nextLine = sc.nextLine();
int searchIndex = nextLine.indexOf(fromString);
if ( searchIndex == 0 ) {
int startIndex = nextLine.indexOf(":") + 2;
int endIndex = nextLine.indexOf("@");
fromResult = nextLine.toString().substring(startIndex,endIndex);
}
searchIndex = nextLine.indexOf(dateString);
if ( searchIndex == 0 ) {
int startIndex = nextLine.indexOf(",") + 2;
int endIndex = nextLine.lastIndexOf(" ");
dateResult = nextLine.toString().substring(startIndex,endIndex).replace(" ","_").replace(":","");
}
}
return fromResult + "_" + dateResult + "_" + filename;
}
// when eml is not in the filename, just return the filename
return filename;
} catch (Exception e) {
System.out.println("Error: " + e.getMessage() );
return "Error";
}
return "Finished";
}
我能弄清楚的是我如何重新编译它以实现我的自定义代码并进行部署。当然,我还没有能够对它进行测试,因为当OpenNTF项目有很多组件时,我无法弄清楚编译它的步骤。
答案 0 :(得分:1)
大卫 Notes客户端中的侧边栏插件有2-3个Eclipse项目:
功能包含一个或多个插件。插件可以出现在多个功能中。更新站点包含一个或多个功能。功能可以出现在多个更新站点中。
充其量是令人困惑的。但那是Eclipse的方式。 OpenNTF项目包含所有源代码,因此请下载并将其导入到Domino设计器(或Eclipse)中的2-3个项目中。 Mikkel Heisterberg和Nathan Freeman撰写了有关如何为Notes插件开发设置Eclipse的文章。
有关插件开发的一般教程,请查看Lars Vogalla的教程。
让我们知道它是怎么回事。