diff --git a/Source/CTCoreMessage.h b/Source/CTCoreMessage.h index 2ea6d3a..3545496 100644 --- a/Source/CTCoreMessage.h +++ b/Source/CTCoreMessage.h @@ -124,6 +124,12 @@ */ - (BOOL)isNew; +/*! + @abstract A machine readable ID that is guaranteed unique by the + host that generated the messaeg +*/ +- (NSString *)messageId; + /*! @abstract Returns an NSString containing the messages UID. */ diff --git a/Source/CTCoreMessage.m b/Source/CTCoreMessage.m index 3945354..36189cd 100644 --- a/Source/CTCoreMessage.m +++ b/Source/CTCoreMessage.m @@ -236,6 +236,13 @@ char * etpan_encode_mime_header(char * phrase) return NO; } +- (NSString *)messageId { + if (myFields->fld_message_id != NULL) { + char *value = myFields->fld_message_id->mid_value; + return [NSString stringWithCString:value encoding:NSASCIIStringEncoding]; + } + return nil; +} - (NSString *)uid { return [NSString stringWithCString:myMessage->msg_uid encoding:NSASCIIStringEncoding]; diff --git a/Tests/CTCoreMessageTests.m b/Tests/CTCoreMessageTests.m index 45dac9a..1638c2f 100644 --- a/Tests/CTCoreMessageTests.m +++ b/Tests/CTCoreMessageTests.m @@ -51,6 +51,11 @@ STAssertEqualObjects(@"Test value1!", [myMsg subject], @"Basic set and get of subject failed."); } +- (void)testBasicMessageId { + STAssertEqualObjects(@"20061227050649.BEDF0B8563@theronge.com", [myRealMsg messageId], @""); +} + + - (void)testReallyLongSubject { NSString *reallyLongStr = @"faldskjfalkdjfal;skdfjl;ksdjfl;askjdflsadjkfsldfkjlsdfjkldskfjlsdkfjlskdfjslkdfjsdlkfjsdlfkjsdlfkjsdlfkjsdlkfjsdlfkjsdlfkjsldfjksldkfjsldkfjsdlfkjdslfjdsflkjdsflkjdsfldskjfsdlkfjsdlkfjdslkfjsdlkfjdslfkjfaldskjfalkdjfal;skdfjl;ksdjfl;askjdflsadjkfsldfkjlsdfjkldskfjlsdkfjlskdfjslkdfjsdlkfjsdlfkjsdlfkjsdlfkjsdlkfjsdlfkjsdlfkjsldfjksldkfjsldkfjsdlfkjdslfjdsflkjdsflkjdsfldskjfsdlkfjsdlkfjdslkfjsdlkfjdslfkjfaldskjfalkdjfal;skdfjl;ksdjfl;askjdflsadjkfsldfkjlsdfjkldskfjlsdkfjlskdfjslkdfjsdlkfjsdlfkjsdlfkjsdlfkjsdlkfjsdlfkjsdlfkjsldfjksldkfjsldkfjsdlfkjdslfjdsflkjdsflkjdsfldskjfsdlkfjsdlkfjdslkfjsdlkfjdslfkjaskjdflsadjkfsldfkjlsdfjkldskfjlsdkfjlskdfjslkdfjsdlkfjsdlfkjsdlfkjsdlfkjsdlkfjsdlfkjsdlfkjsldfjksldkfjsldkfjsdlfkjdslfjdsflkjdsflkjdsfldskjfsdlkfjsdlkfjdslkfjsdlkfjdslfkjaskjdflsadjkfsldfkjlsdfjkldskfjlsdkfjlskdfjslkdfjsdlkfjsdlfkjsdlfkjsdlfkjsdlkfjsdlfkjsdlfkjsldfjksldkfjsldkfjsdlfkjdslfjdsflkjdsflkjdsfldskjfsdlkfjsdlkfjdslkfjsdlkfjdslfkj"; [myMsg setSubject:reallyLongStr];