protected override void SetAdditionalMessageProperties(MessageItem message)
        {
            if (!(message is GroupMailboxJoinRequestMessageItem))
            {
                throw new ArgumentException();
            }
            GroupMailboxJoinRequestMessageItem groupMailboxJoinRequestMessageItem = message as GroupMailboxJoinRequestMessageItem;

            groupMailboxJoinRequestMessageItem.GroupSmtpAddress     = this.groupAdUser.PrimarySmtpAddress.ToString();
            groupMailboxJoinRequestMessageItem.AutoResponseSuppress = AutoResponseSuppress.All;
        }
        internal static void SendMessage(MailboxSession mailboxSession, ADUser groupAdUser, string attachedMessageBody)
        {
            ArgumentValidator.ThrowIfNull("groupMailbox", mailboxSession);
            ArgumentValidator.ThrowIfNull("groupAdUser", groupAdUser);
            ArgumentValidator.ThrowIfNull("attachedMessageBody", attachedMessageBody);
            StoreObjectId storeObjectId = mailboxSession.GetDefaultFolderId(DefaultFolderType.TemporarySaves);

            if (storeObjectId == null)
            {
                storeObjectId = mailboxSession.CreateDefaultFolder(DefaultFolderType.TemporarySaves);
            }
            using (GroupMailboxJoinRequestMessageItem groupMailboxJoinRequestMessageItem = GroupMailboxJoinRequestMessageItem.Create(mailboxSession, storeObjectId))
            {
                new GroupJoinRequestMessageComposer(mailboxSession, groupAdUser, attachedMessageBody).WriteToMessage(groupMailboxJoinRequestMessageItem);
                groupMailboxJoinRequestMessageItem.Send();
            }
        }