POP3を使用して電子メールアカウントにアクセスし、送信されたメッセージは検索できますが、そのアドレスは存在しませんでした。それらを処理した後、私は失敗メッセージを削除します。メッセージを取得して処理できるクライアントが1人ありますが、メッセージを削除することはできません。彼らはメッセージを受け取り続けるError deleting message 1: -ERR The specified message is out of range.
POP3を使用して電子メールメッセージを削除できません
私の削除方法のコードは以下の通りです。これは、ほとんどのクライアントで動作し、非常に単純なので、なぜ動作していないのか分かりません。 SendReceive方法について
public bool Delete(int index)
{
bool result = false;
String response = SendReceive("DELE ", index.ToString());
if (response.StartsWith("+OK"))
result = true;
else
logger.Log("Error deleting message " + index + ": " + response, Verbose.LogImportant);
return result;
}
は:削除方法は、処理した後まで
private String SendReceive(String command, String parameter)
{
String result = null;
try
{
String myCommand = command.ToUpper().Trim() + " " + parameter.Trim() + Environment.NewLine;
byte[] data = System.Text.Encoding.ASCII.GetBytes(myCommand.ToCharArray());
tcpClient.GetStream().Write(data, 0, data.Length);
result = streamReader.ReadLine();
}
catch { } // Not logged in...
return result;
}
インデックスは、受信した電子メールから直接取得され、接続が閉じられていません。このメソッドを実行するために電子メールが返されなければならないので、インデックスは1からnまで実行され、1が送信されるので、何が失敗するのかはわかりません。
@jstedfastさんへの返信ありがとうございます。私のSendReceiveメソッドを含まないことは、私の見落としでした。 – Tim
それが修正された場合、私の答えは受け入れられるとマークできますか?ありがとう! – jstedfast
残念ながら、それはそれを修正しませんでした。私はすでに正しい情報を送っていました。私はちょうどそれを示すコードを含んでいなかったので、私は私の質問を更新しました。 – Tim