6

私のコードでは、Exchange から未読メッセージを取得し、そのメッセージに基づいて何らかの処理を行ってから、処理の結果をメッセージに返信します。

私が抱えている問題は、メールに返信しようとすると、responseMessage.send() または responseMessage.sendAndSave() の呼び出しで以下のエラーが発生することです。

The current ChangeKey is required for this operation.

以下は、このエラーをトリガーしている実行中のコードです。

public void replyToEmail(EmailMessage _emailMessage, String _reply)
    {

        String serviceManager = emailServerAddress = ConfigurationSettings.AppSettings["serviceManagerEmail"].Trim();
        ResponseMessage responseMessage = _emailMessage.CreateReply(true);
        responseMessage.BodyPrefix = _reply;

        String changekey = _emailMessage.Id.ChangeKey;

        if (!serviceManager.Equals(""))
        {
            responseMessage.CcRecipients.Add(new EmailAddress(serviceManager));
        }

        responseMessage.Send();
    }

_emailMessage.id.Changekey を介して _emailMessage changeKey の値を確認でき、そこに値があり、_emailMessage.createReply() が呼び出されたときに responseMessage に割り当てられると予想していました。手動で割り当てる方法が見つかりません。

検索中にこの問題への言及を見つけることができませんでした。

4

1 に答える 1

7

メッセージ IsRead = true を設定し、その更新をサーバーに保存した後、.Forward でこの問題に遭遇しました。これにより ChangeKey が変更されるため、有効ではなくなります。

_emailMessage.Load() を実行して、サーバーからメッセージを再度取得し、新しい ChangeKey を取得してみてください。

于 2014-02-13T18:29:41.113 に答える