C# 在我终止应用程序之前,邮件不会被发送-System.Mail.Net
我已经编写了一些简单的代码,使用System.mail.Net名称空间发送自动生成的电子邮件 它就像一个符咒,但有一个小问题 直到我的整个申请被终止,邮件才被发送 你们中有人有解决这个问题的办法吗 以下是我使用c语言编写的代码:C# 在我终止应用程序之前,邮件不会被发送-System.Mail.Net,c#,.net,email,C#,.net,Email,我已经编写了一些简单的代码,使用System.mail.Net名称空间发送自动生成的电子邮件 它就像一个符咒,但有一个小问题 直到我的整个申请被终止,邮件才被发送 你们中有人有解决这个问题的办法吗 以下是我使用c语言编写的代码: try { MailMessage mail = new MailMessage(); mail.From = new MailAddress("myEmail@mail.com");
try
{
MailMessage mail = new MailMessage();
mail.From = new MailAddress("myEmail@mail.com");
mail.To.Add("targetEmail@mail.com");
mail.Subject = "Test test";
mail.Body = "blah blah";
mail.Attachments.Add(new Attachment("c:\\file.txt"));
SmtpClient smtp = new SmtpClient("myserver.mail.com");
smtp.Send(mail);
}
catch (SmtpFailedRecipientsException ex)
{
Console.WriteLine(ex);
}
正如我所说的,一切正常,但邮件不会发送,直到我终止应用程序
有没有办法强迫它现在就发送邮件
这是一个问题的原因,既因为我希望在用户无需重新启动应用程序的情况下立即发送邮件,也因为我希望在邮件发送后删除附件,并且当邮件未发送时,文件因此被标记为正在使用,因此无法删除
致意
/S呼叫
smtp.Send(mail);
立即将电子邮件发送到smtp服务器。如果您没有看到该行执行后立即发送电子邮件,那么我将检查您的smtp服务器是否正常工作
这是关于SmtpClient的。呼叫
smtp.Send(mail);
立即将电子邮件发送到smtp服务器。如果您没有看到该行执行后立即发送电子邮件,那么我将检查您的smtp服务器是否正常工作
这是关于SmtpClient的。我也遇到了同样的问题,使用发布在上的解决方法似乎可以奏效: 对于任何感兴趣的人,我已经找到了解决方案,或者至少找到了解决延迟的方法 ServicePoint成员包含一个名为MaxIdleTime的成员。将此值设置为0似乎与Timeout.Infinite具有相同的影响,我假定它也是0。将其设置为1会立即发送我的电子邮件 请参阅此链接: 示例代码:
我也遇到过同样的问题,使用发布在上的解决方案似乎很有效: 对于任何感兴趣的人,我已经找到了解决方案,或者至少找到了解决延迟的方法 ServicePoint成员包含一个名为MaxIdleTime的成员。将此值设置为0似乎与Timeout.Infinite具有相同的影响,我假定它也是0。将其设置为1会立即发送我的电子邮件 请参阅此链接: 示例代码:
我想知道你的应用程序是否在附件上有一个锁,在你的应用程序开始关闭之前,它会阻止邮件组件工作。在发送邮件之前,您能否验证是否已清除所有锁
你可以从一个只发送电子邮件的新小应用开始。一旦它正常工作,添加一个硬编码附件。确认它仍在工作。如果一切正常,请添加处理附件的代码。如果它坏了,调整你的代码。冲洗并重复 我想知道您的应用程序是否在附件上有一个锁,在应用程序开始关闭之前,它会阻止邮件组件工作。在发送邮件之前,您能否验证是否已清除所有锁
你可以从一个只发送电子邮件的新小应用开始。一旦它正常工作,添加一个硬编码附件。确认它仍在工作。如果一切正常,请添加处理附件的代码。如果它坏了,调整你的代码。冲洗并重复 我以前见过这个问题。我必须关闭诺顿防病毒发送电子邮件扫描,以使电子邮件立即消失
HTH我以前见过这个问题。我必须关闭诺顿防病毒发送电子邮件扫描,以使电子邮件立即消失
HTH我会非常小心的。有关更多信息,请参阅。我会对此非常小心。有关更多信息,请参阅