Tôi đã phát triển một ứng dụng chủ yếu gửi thư email sử dụng SMTP. Gửi tin nhắn từng người một là tốt, tuy nhiên tôi đang tìm cách để tăng tốc quá trình. Tôi đã tạo nhiều phiên bản của SmtpClient
cũng như các thư để tránh xung đột lẫn nhau. Bởi vì các trường hợp riêng biệt, tôi giả định thực hiện .Send()
trên nhiều luồng sẽ hoạt động tốt. Tuy nhiên, một cái gì đó với mã số Thread
của tôi không hoạt động, bởi vì tôi không thể gửi ngay cả một email trên một chuỗi bằng cách sử dụng mã này. Tôi chỉ nhận được một ngoại lệ "Failure sending mail"
mơ hồ. Tôi sẽ đăng mã hoạt động và Thread
không hoạt động. Ai đó có thể chia sẻ điều họ tin có thể là nguyên nhân?C# Gửi SMTP bằng System.Threading
Note Tôi hiện không muốn sử dụng các async
khả năng mới hơn nhưng thay vì tận dụng Thread
Tuyên bố làm việc và phương pháp Call:
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);
}
KHÔNG Làm việc khai Chủ đề và Phương pháp Call:
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
})
{
Thread T1 = new Thread(delegate() { SMTP.Send(message); });
T1.Start();
}
Bạn có 'Thread' mới bên trong một 'khối using' cho' message'? Bằng cách này, tin nhắn có thể được xử lý trước khi chủ đề mới gửi nó. –
Vứt tờ khai và phương pháp làm việc của bạn theo phương pháp khác và sau đó sử dụng phương pháp đó trong chủ đề – nsconnector
Tôi thì không. Bạn có thể giải thích thêm một chút được không? Tôi cũng không chắc chắn những gì bạn có nghĩa là bằng cách được xử lý trước khi các chủ đề mới gửi nó, để thử nghiệm vì lợi ích tôi chỉ sử dụng một sợi. Tôi cũng có thể là con đường ở đây, tôi hy vọng bạn có thể trần với tôi. – scniro