Tôi có dịch vụ .NET xử lý hàng đợi trên chuỗi nền và từ các mục trong hàng đợi gửi một số lượng lớn thư e-mail nhỏ ở rất tốc độ cao (nói 100 tin nhắn mỗi giây nếu điều đó thậm chí có thể). Hiện tại, tôi sử dụng SmtpClient.Send()
nhưng tôi sợ rằng nó có thể cản trở hiệu suất.Gửi e-mail SMTP với tốc độ cao trong .NET
Mỗi cuộc gọi đến Send()
trải qua chu kỳ đầy đủ khi mở ổ cắm, thực hiện cuộc hội thoại SMTP (HELO, MAIL FROM, RCPT TO, DATA) và đóng socket. Trong mã giả:
for each message {
open socket
send HELO
send MAIL FROM
send RCPT TO
send DATA
send QUIT
close socket
}
(Sửa:. Tuyên bố này về SmtpClient.Send()
là trong thực tế sai như tôi đã giải thích trong câu trả lời của tôi)
tôi sẽ nghĩ rằng mã giả sau đây sẽ được tối ưu hơn:
open socket
send HELO
for each message {
send MAIL FROM
send RCPT TO
send DATA
}
send QUIT
close socket
Tôi có nên quan tâm đến hiệu suất của SmtpClient.Send()
khi gửi e-mail với tốc độ cao không? Các tùy chọn của tôi để tối ưu hóa hiệu suất là gì?
các thư này có giống nhau không, nhưng đối với những người nhận khác nhau hoặc nội dung của email có khác nhau không? –
@Rob Levine: Cùng một người nhận nhưng có nội dung khác nhau. –
Với hàng trăm giây? Ai trên trái đất muốn được chôn dưới email đó? –