MSGID / Message-ID Conversion for Fido-Internet Gateways : Converting FTN ^AMSGID to RFC Message-ID

Next Previous Contents

## 4. Converting FTN ^AMSGID to RFC Message-ID

Converting ^AREPLY works the same way, using References for news or In-Reply-To for mail.

## 4.1 FIDO messages without ^AMSGID

Some FIDO messages do not contain a unique ^AMSGID. In this case it is necessary to generate a Message-ID which is the same for all gateways. (Otherwise dupes on the Internet side cannot be detected.)

The proposed method works as follows: for each message without a MSGID the `id' part of Message-ID is composed of the string "NOMSGID_", the FTN sender address Z:N/F.P using MIME-style quoted printables for `:', `/' as in 3.3, the string "_", the date of the message formatted as "YYMMDD_HHMMSS" (year month day, hour minute second), the string "_", and a CRC32 over the concatenation of the FIDO headers From, To, and Subject.

- The FTN sender address is taken from the origin line (EchoMail) or the message header + ^AINTL/FMPT/TOPT (NetMail). A node address must include the `.0'.
- The date is taken from the date field in the message header.
- The CRC value is computed using the same polynomial and method as specified in section 6.

The `do.main' part is the Internet domain appropiate for this FTN (fidonet.org for FIDONET zone 1-6).

Examples:

    FIDO-Message    From:    Martin Junius @ FIDO 2:242/6.1
                    To:      Test User     @ FIDO 2:242/6
                    Subject: Nur ein Test
                    Date:    06 Dec 92  22:22:00
    -->
    Message-ID: <NOMSGID_2=3A242=2F6.1_921206_222200_08cfe072@fidonet.org>

    FIDO-Message    From:    Martin Junius @ FIDO 2:2452/110
                    To:      Test User     @ FIDO 2:2452/111
                    Subject: Nur ein Test
                    Date:    05 Jan 95  11:23:32
    -->
    Message-ID: <NOMSGID_2=3A2452=2F110.0_950105_112332_08cfe072@fidonet.org>

08cfe072 = CRC32("Martin Junius" + "Test User" + "Nur ein Test")

PROBLEMS: message with the same date and subject, e.g. robot mails or split mails, will get the same Message-ID and therefore be trashed by the news dupe check.

## 4.2 FTN MSGID with Internet ID

    ^AMSGID: <id@do.main> abcd1234
    -->
    Message-ID: <id@do.main>

If the origin address part of MSGID is a valid RFC Message-ID `<*@*>', then it is directly used for the RFC Message-ID. If `<id@do.main>' is quoted according to the FTS-0009 specs ("..."), these quotes must be removed and double quotes ("") reduced to a single one.

## 4.3 Generic MSGID Conversion

This procedure may be used for all FIDO-style and unknown MSGIDs.

    ^AMSGID: anything abcd1234
    -->
    Message-ID: <MSGID_mimeanything_abcd1234@ftn.domain>

`anything' is converted to `mimeanything' using the following rules (see also the Q encoding specified in RFC1522):

- ` ' (space) is converted to `_' (underscore)
- Any character not allowed in RFC822 atoms (except `.'), `/', `=' and `_' (meaning control chars < 0x20, `()<>@,;:"[]/=_` and chars >= 0x7f) are converted to a MIME-style quoted printable `=XX' where XX is the hex ASCII character code (upper case).
- All other characters are left as is.

`ftn.domain' must be the appropiate Internet domain (fidonet.org for FIDONET zone 1-6). If `anything' is a string quoted with "...", these quotes and any quotes within the string are kept as `=22'.

Examples:

    ^AMSGID: 2:2452/110.1@FIDONet abcd1234
    -->
    Message-ID: <MSGID_2=3A2452=2F110.1=40FIDONet_abcd1234@fidonet.org>

    ^AMSGID: 242:1000/1.1 abcd1234
    -->
    Message-ID: <MSGID_242=3A1000=2F1.1_abcd1234@fido.de>

    ^MSGID: "some "" junk" abcd1234
    -->
    Message-ID: <MSGID_=22some_=22=22_junk=22_abcd1234@fidonet.org>

Next Previous Contents