• inline attachments beeing ignored

    By Christian Brandlehner 2 decades ago

    Steps to reproduce:

    a) Read Lotus Technote 4004046 on how to resend a previously dumped SMTP session. Get the SendFiles tool from IBM.

    b) download this dumped SMTP session: http://chris.brandlehner.at/netscapemail.tmp

    c) send that tmp file to your server using SendFiles.

    d) the inline attachment (a doc file) is not beeing scanned for viruses

    • additional information on inline MIME attachments

      By Christian Brandlehner 2 decades ago

      I opened a PMR with IBM and got the following information:




      • @attachment(0) does not display attachment with or without attachment

        Tried to create a workaround using other means of detecting attachment with LotusScript and @-formulas. All of my attempts failed however there is the possibility to use C-API to achive a full detection:



        We do offer mime handling functions for this very reason, not in LotusScript or @Formula language but in the C API toolkit the preferred method of processing this type of content eg :



        We offer a flag :



        OPEN_RAW_MIME_PART - If set, leave TYPE_MIME_PART items in native format. Otherwise, convert to TYPE_COMPOSITE. This flag can be used with functions that take DWORD OPEN_xxx(note) flags, such as NSFNoteOpenExt. This allows AntiVirus vendors the ability to extract the MIME stream before any client processing takes place.



        In addition its possible to parse items manually :


        include

        Symbolic Values :

        MIME_PART_HAS_BOUNDARY - Mime part has boundary.

        MIME_PART_HAS_HEADERS - Mime part has headers.

        MIME_PART_BODY_IN_DBOBJECT - Mime part has body in database object.

        MIME_PART_SHARED_DBOBJECT - Mime part has shared database object. Used only with MIME_PART_BODY_IN_DBOBJECT.

        MIME_PART_SKIP_FOR_CONVERSION - Skip for conversion.



        Definition :

        typedef struct {

        WORD wVersion; / MIME_PART Version /

        DWORD dwFlags;

        BYTE cPartType; / Type of MIME_PART body /

        BYTE cSpare;

        WORD wByteCount; / Bytes of variable length part data NOT including data in DB object/

        WORD wBoundaryLen; / Length of the boundary string /

        WORD wHeadersLen; / Length of the headers /

        WORD wSpare;

        DWORD dwSpare; / Followed by the actual part data /

        } MIME_PART;