I forgot to explain the counter field: > version:date:resource:[extension]:random:counter this was a suggestion from Izzy Kindred from earlier. The random field is to make the message unique (avoid accidental or malicious collisions between different users). The counter is to try different collision strings without having to increment the random start point. This is simpler as otherwise you technically need to choose from a larger random start point for larger number of bits, or probability of accidental or malicious collision goes up as number of bits increase. By having separate fields the issues are separted. The random string is just chose sufficiently large to avoid collision based on assumptions about the type of communication (likely number of messages in day to one email address); and the counter just starts at 0 and increases (doesn't have to be base 10 could be base 64, base alpha-numeric ... also just a printable text string excluding ' and whitespace and :.) Adam