//---------------------------------------------------------------------
        Task IGrainAppProxyService.AckRecvMailOneAttachment(MailOneAttachment mailAttachment)
        {
            string grain_key = string.Format("{0}_{1}", AppId, mailAttachment.player_guid);
            var grain_playerapp = GrainFactory.GetGrain<IGrainPlayer>(grain_key);
            grain_playerapp.AckRecvMailOneAttachment(mailAttachment);

            return TaskDone.Done;
        }
        //---------------------------------------------------------------------
        // App->Cell
        Task IGrainPlayer.AckRecvMailOneAttachment(MailOneAttachment mail_attachment)
        {
            Logger.Info("AckRecvMailOneAttachment() GrainId={0}", GrainKey);

            return TaskDone.Done;
        }