1

我在 Domino 服务器上创建了一条 mime 消息,但结果不稳定,具体取决于逐项服务器。

详细信息:我正在创建一个包含内联图像的备忘录,源文件存储在服务器文件系统中。插入备忘录的图像如下:

'container is a parent mime entity, where images will be stored

    For i = 0 To Ubound(images)
        If Dir$(images(i).FileName) = "" Then Error 15001, ERR_FILE_NOT_FOUND

        Set stream = session.CreateStream
        stream.Open images(i).FileName, "binary"
        Set child = container.CreateChildEntity
        child.SetContentFromBytes stream, images(i).ContentType, ENC_NONE
        child.EncodeContent ENC_BASE64

        fileName = "i" + CStr(i) + "." + ExtractFileExtension(images(i).FileName)

        Set header = child.GetNthHeader("Content-ID", 1)
        If header Is Nothing Then Set header = child.CreateHeader("Content-ID")
        header.SetHeaderVal "<" + fileName + ">"

        Set header = child.GetNthHeader("Content-Type", 1)
        If header Is Nothing Then Set header = child.CreateHeader("Content-Type")
        header.SetHeaderValAndParams images(i).ContentType + {; name="} + fileName + {"}

        Set header = child.CreateHeader("Content-Disposition")
        header.SetHeaderValAndParams {inline; filename="} + fileName + {"}

        stream.Close
    Next

这是结果标题:

Headers: "Content-Transfer-Encoding: binary
Content-Type: image/jpeg;
     name="i0.jpg"
Content-Disposition: inline;
     filename="i0.jpg"
Content-ID: <i0.jpg>

"
Body: "i0.jpg"

它在除 Lotus 之外的任何邮件客户端中都具有魅力。根据创建备忘录的服务器,Lotus 可以显示内联图像附件,或仅显示内联图像(见附件图片)。

渲染OK

渲染OK

渲染不佳

渲染不佳

ls代码一模一样,备忘录一模一样(ok,除了服务器名、unid、时间值),只是备忘录显示不一样,Content-Disposition头被忽略了。

经过广泛调查后,我发现 mime 附件的 $FILE 字段存在一个小差异,请参见图片:

见图片

当“主机”属性为“2304”时,渲染正常,当它设置为“MSDOS/OS2”时,内联图像复制为附件。

那么,问题是如何设置这个附件字段 HOST 参数?或者有什么方法可以让 LN 客户端符合 Content-Disposition 标头?

4

0 回答 0