我们的老板希望使用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项目包含许多组件时,我无法弄清楚编译它的步骤。

最佳答案

大卫,
Notes客户端中的侧边栏插件具有2-3个Eclipse项目:


一个插件项目
特色项目
更新站点项目


功能包含一个或多个插件。插件可以出现在多个功能中。更新站点包含一项或多项功能。功能可以出现在多个更新站点中。

充其量是令人困惑的。但这就是Eclipse的方式。 OpenNTF项目包含所有源代码,因此请下载它并将其导入到2-3个项目的Domino Designer(或Eclipse)中。 Mikkel Heisterberg和Nathan Freeman撰写了有关如何为Notes插件开发设置Eclipse的文章。

有关插件开发的一般教程,请查看Lars Vogalla的教程。

让我们知道怎么回事。

08-17 06:27