首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >system.net.mail太慢了

system.net.mail太慢了
EN

Stack Overflow用户
提问于 2011-03-13 02:28:12
回答 2查看 2.9K关注 0票数 2

我使用system.net.mail发送电子邮件,如下所示,但它太慢了。发送大概需要一分钟,我的代码出了什么问题。我在backgroundworker_dowork中调用下面的代码。

编辑:有没有更快的替代方案,也许是免费的或者开源的

代码语言:javascript
复制
' 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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-13 03:45:26

让SMTP服务器将电子邮件分发给收件人。

代码语言:javascript
复制
For i = 0 To lstRecipients.Count - 1
    mail.To.Add(lstRecipients(i))
Next
smtp.Send(mail)

如果不希望收件人看到其他姓名,请使用“密件抄送”属性。

票数 4
EN

Stack Overflow用户

发布于 2011-03-13 02:54:06

您可能希望切换到“拾取模式”,在该模式下,邮件客户端会将邮件放入本地IIS SMTP发送位置。这样,您就可以异步(某种程度上)发送邮件,尽管您必须对SMTP组件执行install and configure操作。

你的代码在我看来没问题,lag一定在你使用的中继服务器上。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5284514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档