【问题标题】:Deleting Mail from gmail account从 gmail 帐户中删除邮件
【发布时间】:2014-03-20 21:02:31
【问题描述】:

我可以使用 c# 代码向多个用户发送带有附件的邮件。我想删除使用 c# 从我的 gmail 帐户发送的已发送邮件。有什么办法吗。

我发送带附件邮件的代码。

if (MailID1 != null)
        {
            System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
            try
            {
                mailidcount = MailID1.Split(',').Count();
                mailids = new string[mailidcount];
                mailids = MailID1.Split(',');
                var Adminmail = "User@gmail.com";
                var AdminPassword = "password123!";
                var AdminSmtpclient = "smtp.gmail.com"
                string sub = Formobj["Subject_Text"]+" " + Convert.ToDateTime(DateTime.Now.ToUniversalTime()).ToString("dd/MM/yyyy");
                mail.Subject = sub;
                mail.From = new System.Net.Mail.MailAddress(Adminmail);
                mail.To.Add(mailids[0]);
                if (mailidcount > 0)
                {
                    for (int a = 1; a < mailidcount; a++)
                    {
                        mail.CC.Add(mailids[a]);
                    }
                }
                mail.Body = "<pre>" +Formobj["Message_Text"] +"</pre>";
                mail.IsBodyHtml = true;
                string filename;
                string Filename = Path.GetFileName(Infile.FileName);
                filename = Path.Combine(AppDomain.CurrentDomain.BaseDirectory + "\\Content\\TrialFolder\\Filefolder\\" + Filename);
                if (Infile.ContentLength > 0)
                {
                    Infile.SaveAs(filename);
                    System.Net.Mail.Attachment attached;
                    attached = new System.Net.Mail.Attachment(filename);
                    mail.Attachments.Add(attached);
                }
                if (sub != null)
                {
                    mail.IsBodyHtml = true;
                    System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient(AdminSmtpclient);
                    smtp.Host = AdminSmtpclient;
                    smtp.Port = "587";
                    smtp.UseDefaultCredentials = true;
                    smtp.EnableSsl = true;
                    smtp.Credentials = new System.Net.NetworkCredential(Adminmail, AdminPassword);
                    smtp.Send(mail);
                    if (System.IO.File.Exists(filename) == true)
                    {
                        try
                        {
                            mail.Attachments.Dispose();
                            System.IO.File.Delete(filename);
                            mail.Dispose();
                            smtp.Dispose();
                        }
                        catch (Exception ex)
                        {
                            ViewBag.Message = ex.Message;
                        }
                    }
                    TempData["EmailMessage"] = "Your Message has been sent Successfully";
                }
                else
                {
                    TempData["EmailMessage"] = "Please check Email Settings";
                }
            }

【问题讨论】:

    标签: c# asp.net-mvc-3 email


    【解决方案1】:

    有一个完整的 gmail API => https://developers.google.com/gdata/client-cs

    【讨论】:

    • 非常感谢,但是如果我使用的是gmail以外的邮件帐户,那么解决方案是什么
    • 如果您的客户帐户使用 IMAP,那么您可以编写/使用库作为客户端 (code.msdn.microsoft.com/windowsdesktop/…) 否则您依赖于 API,例如,如果协议是交换,您将不得不找到有关交换的信息。这实际上取决于您如何删除/查找消息的协议。
    【解决方案2】:

    有一些第三方dll,如OpenPOP,IMAP4,您可以使用它们删除发送的邮件。SMTP仅用于sending mails

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-29
      • 2021-10-22
      • 1970-01-01
      • 2014-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多