Lotus notes 使用公式识别带有RFC822 Internet邮件文本的字段

Lotus notes 使用公式识别带有RFC822 Internet邮件文本的字段,lotus-notes,lotus-domino,lotusscript,lotus-formula,Lotus Notes,Lotus Domino,Lotusscript,Lotus Formula,我有一些文档有一个名为的字段,其中一些文档有RFC822 Internet邮件文本。其内容显示在文档属性中,如下所示: Field Name: From Data Type: RFC822 Text Data Length: XX bytes Seq Num: 2 Dup Item ID: 0 Field Flags: SUMMARY NAMES RFC822 Type: ADDRESS RFC822 Flags: STRICT Native Value: "ABC XYZ <

我有一些文档有一个名为的字段,其中一些文档有RFC822 Internet邮件文本。其内容显示在文档属性中,如下所示:

Field Name: From
Data Type: RFC822 Text
Data Length: XX bytes
Seq Num: 2
Dup Item ID: 0

Field Flags: SUMMARY NAMES 

RFC822 Type: ADDRESS
RFC822 Flags: STRICT 
Native Value: 

"ABC XYZ <ABCXYZ@PQR.COM>"

RFC822 Header Name: 

"From"

RFC822 Header Delimiter: 

": "

RFC822 Header Body: 

4E 79 6A 52 19 ABC 
6F 59 6F 60 32 XYZ
...
...

但是我如何用公式语言检查这个问题呢?我找不到任何等价的公式代码来检查RFC822 Internet邮件文本。我试图识别RFC822文本类型的字段,其字段属性类似于上面所示。我需要它,以便将其放入视图选择公式中,并在单个视图中查看所有文档。

我认为您可以使用此公式检查项目的值是否为FRC822格式:

add := @ValidateInternetAddress([ADDRESS822];From) ;
x := @If( add = "" ; "RFC 822 ADDRESS" ; "OTHER ADDRESS FORMAT") ;
@Prompt([OK];"";x)
如果公式返回空字符串,则验证成功,或者换句话说:中字段中的值包含有效的RFC822值


但它不检查项目的类型。

我不知道有什么方法可以用公式语言检查字段类型。您是否可以编写LotusScript代理来检查项。键入并添加一个隐藏字段(例如,$HasRFC822TextItems=1),并将其用于视图选择公式


如果您不能或不想这样做,另一种选择是创建一个文件夹,并使用该文件夹而不是视图。也就是说,让您的代理测试项目。按上述方式键入,然后使用NotesDocument.putInFolder(“RFC 822文本文档”)。

谢谢您的回答。但是,如果字段值仅包含值“ABC XYZ”,则公式返回true。如果它包含如my question(在文档属性中可见)中所示的值,则返回错误消息
找到的短语或字符无效。
Hm,奇怪。我在一封邮件中尝试了这一点,邮件中的“发件人”字段的格式与您的问题中描述的格式相同。在这种情况下,它返回一个空字符串。当我对一个带有Notes地址的From字段尝试此操作时,我得到了您提到的错误。所以你可以把我的公式包装成@If公式来捕捉这个。我更新了上面的代码一点。它仍然不适合我。在视图选择公式中是否适用?这就是我打算使用它的地方。它是@ValidateInternetAddress中带有[Address822]参数的一个bug。根据RFC822规范,ABC XYZ周围不需要引号。在规范中的BNF中,地址的该部分称为“短语”,而“短语”定义为“1*word”,表示一个或多个单词。“Streitfeld,Sara(迈阿密)”周围需要引号,因为它包含逗号,逗号是分隔符。(在RFC5322中也是如此,这是最新的标准,尽管此版本将地址的这一部分称为“显示名称”,然后将其定义为“短语”。)我应该补充一点,大多数人会在“ABC XYZ”周围加上引号,因为这是一种他们一直看到的约定,他们认为这是必需的。大多数软件也是如此,如果它收到一个地址而显示名称周围没有引号,可能会有相当多的坏软件出现。因此,根据标准,它确实不是必需的——但使用引号仍然是一个好主意,以确保所有的坏软件都能接受该地址。我对你真正想要的东西有点困惑。您是否正在尝试标识“RFC822文本”类型的字段(如文档属性框中的字段列表所示)?或者您正在尝试识别包含符合RFC822地址规范的有效地址的字段?或者您正在尝试标识RFC822文本类型的字段,并且包含符合RFC822地址规范的有效地址?或者别的什么,如果我错过了这里的任何可能性;-)我试图识别RFC822文本类型的字段,字段属性与我的问题类似。我需要以某种方式将所有具有此类字段值的文档显示在视图中。
add := @ValidateInternetAddress([ADDRESS822];From) ;
x := @If( add = "" ; "RFC 822 ADDRESS" ; "OTHER ADDRESS FORMAT") ;
@Prompt([OK];"";x)