我使用system.net.mail发送电子邮件,如下所示,但它太慢了。发送大概需要一分钟,我的代码出了什么问题。我在backgroundworker_dowork中调用下面的代码。
编辑:有没有更快的替代方案,也许是免费的或者开源的
' send the email '
Dim smtp As SmtpClient = New SmtpClient()
Dim mail As New MailMessage()
Dim i As Long = 0
' SMTP settings '
With smtp
.Host = Trim$(sSMTP)
.Port = Trim$(iPort)
.UseDefaultCredentials = False
.Credentials = New System.Net.NetworkCredential(sUserID, sPword)
.EnableSsl = bSSL
End With
' create the mail '
With mail
If sAttachment <> vbNullString Then
.Attachments.Add(New Net.Mail.Attachment(sAttachment))
End If
.From = New MailAddress(sFromEmail, sFromName)
.ReplyTo = New MailAddress(sReplyTo)
.Subject = sSubject
.IsBodyHtml = True
.Body = sMessage
End With
For i = 0 To lstRecipients.Count - 1
mail.To.Add(lstRecipients(i))
Debug.Print(lstRecipients(i))
Try
smtp.Send(mail)
lSent += 1
bwrkMain.ReportProgress(CInt(100 * (i + 1) / iTotalRecipients))
SetStatus("Sent:" & lstRecipients(i))
Catch ex As Exception
bwrkMain.ReportProgress(CInt(100 * (i + 1) / iTotalRecipients))
SetStatus("Not Sent:" & lstRecipients(i))
End Try
mail.To.Clear()
Next发布于 2011-03-13 03:45:26
让SMTP服务器将电子邮件分发给收件人。
For i = 0 To lstRecipients.Count - 1
mail.To.Add(lstRecipients(i))
Next
smtp.Send(mail)如果不希望收件人看到其他姓名,请使用“密件抄送”属性。
发布于 2011-03-13 02:54:06
您可能希望切换到“拾取模式”,在该模式下,邮件客户端会将邮件放入本地IIS SMTP发送位置。这样,您就可以异步(某种程度上)发送邮件,尽管您必须对SMTP组件执行install and configure操作。
你的代码在我看来没问题,lag一定在你使用的中继服务器上。
https://stackoverflow.com/questions/5284514
复制相似问题