我开发了一个主要使用SMTP发送电子邮件的应用程序.一个接一个地发送消息很好,但是我希望加快这个过程.我创建了SmtpClient的多个实例以及消息以避免彼此之间的冲突.由于单独的实例,我假设在多个线程上执行.Send()会很好.但是,单独使用我的线程代码不起作用,因为我无法使用此代码在一个线程上发送一封电子邮件.我只是收到一个模糊的“发送邮件失败”例外.我将发布有效的代码,以及不起作用的Thread.有人可以分享他们认为可能是原因吗?
注意我目前不打算使用较新的异步功能,而是利用Thread
工作宣言和方法电话:
var SMTP = new SmtpClient { Host = txtBxSenderHost.Text,Port = 587,EnableSsl = true,DeliveryMethod = SmtpDeliveryMethod.Network,UseDefaultCredentials = false,Credentials = new NetworkCredential(strSenderAddress,strSenderPassword) }; using (var message = new MailMessage(senderAdrress,toAddress) { Subject = strSubject,Body = strBody }) { SMTP.Send(message); }
var SMTP = new SmtpClient { Host = txtBxSenderHost.Text,Body = strBody }) { Thread T1 = new Thread(delegate() { SMTP.Send(message); } ); T1.Start(); }
解决方法
解决了:
var SMTP = new SmtpClient { Host = txtBxSenderHost.Text,strSenderPassword) }; Thread T1 = new Thread(delegate() { using (var message = new MailMessage(senderAdrress,toAddress) { Subject = strSubject,Body = strBody }) { { SMTP.Send(message); } } }); T1.Start();
原文地址:https://www.jb51.cc/csharp/97950.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。