Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MailKit删除电子邮件Xamarin C#_C#_Email_Xamarin.ios_Xamarin_Mailkit - Fatal编程技术网

MailKit删除电子邮件Xamarin C#

MailKit删除电子邮件Xamarin C#,c#,email,xamarin.ios,xamarin,mailkit,C#,Email,Xamarin.ios,Xamarin,Mailkit,我正在monotouch xamarin上使用mailkit。我正在创建一个将接收电子邮件的应用程序(电子邮件客户端)。我让用户选择是使用Pop3还是IMAP连接协议。我的问题是,我找不到他如何删除Pop3和IMAP上的邮件的解决方案。 我已尝试使用此代码: client.Inbox.AddFlags (new int[] { index }, MessageFlags.Deleted); 从本帖: 但这似乎不适合我。 我捕获Pop3帐户电子邮件的代码是 using (var client =

我正在monotouch xamarin上使用mailkit。我正在创建一个将接收电子邮件的应用程序(电子邮件客户端)。我让用户选择是使用Pop3还是IMAP连接协议。我的问题是,我找不到他如何删除Pop3和IMAP上的邮件的解决方案。 我已尝试使用此代码:

client.Inbox.AddFlags (new int[] { index }, MessageFlags.Deleted);
从本帖: 但这似乎不适合我。 我捕获Pop3帐户电子邮件的代码是

using (var client = new Pop3Client ()) {

    var credentials = new NetworkCredential (Convert.ToString (username), Convert.ToString (password));

    var uri = new Uri (Convert.ToString ("pops://"+pop3));

    using (var cancel = new CancellationTokenSource ()) {
        client.Connect (uri, cancel.Token);

        var _emailItems=new List<EmailItem>() ;

        client.Authenticate (credentials, cancel.Token);
        string[] mycell = new string[200];
        int count = client.GetMessageCount (cancel.Token);
        int lastcount;
        for (int i = 0; i < count; i++) {
            lastcount = (count - 1) - i;
            var message = client.GetMessage (lastcount, cancel.Token);
        }
    }
}
使用(var-client=new-Pop3Client()){
var凭证=新的网络凭证(Convert.ToString(用户名)、Convert.ToString(密码));
var uri=新uri(Convert.ToString(“pops://”+pop3));
使用(var cancel=new CancellationTokenSource()){
Connect(uri,cancel.Token);
var_emailItems=新列表();
客户端身份验证(凭据、取消令牌);
字符串[]mycell=新字符串[200];
int count=client.GetMessageCount(cancel.Token);
最后计数;
for(int i=0;i
不同的协议有不同的删除消息的方法

对于POP3,以下是删除邮件的方式:

client.DeleteMessage (lastcount, cancel.Token);
(注意:除非您实际允许用户取消操作,否则您不需要使用
cancel.Token


另一种删除粘贴邮件的方法是针对IMAP的。

谢谢您的回复。我尝试了你的代码,但没有任何结果。该邮件不会被删除。当我再次连接服务器时,消息再次显示。您正在断开与客户端的连接。断开连接(true)?如果没有,POP3服务器将不会真正删除它们。你太棒了!是的,现在对我有用了。如果我使用imap,您还可以帮助我如何删除邮件吗?您链接的另一篇文章解释了如何使用imap删除邮件: