system.net.mail太慢太慢、system、net、mail

2023-09-07 08:43:06 作者:最后的結束

现在用system.net.mail如下图所示,但其速度太慢,无法发送电子邮件。大约需要一分钟送,什么毛病我code。我打电话低于backgroundworker_dowork的code。

:有没有更快的替代方案,可能免费或开源$ C ​​$ C

 发送电子邮件
昏暗的SMTP作为SmtpClient =新SmtpClient()
昏暗的邮件作为新MailMessage()
昏暗我只要= 0

SMTP设置
通过SMTP
    。主持人=修剪$(ssmtp中)
    .Port =修剪$(I端口)
    .UseDefaultCredentials =假
    .Credentials =新System.Net.NetworkCredential(sUserID,sPword)
    .EnableSsl = BSSL
结束与

创建邮件
随着邮件
    如果sAttachment<> vbNullString然后
        .Attachments.Add(新Net.Mail.Attachment(sAttachment))
    结束如果
    。从=新MailAddress(sFromEmail,sFromName)
    .ReplyTo =新MailAddress(sReplyTo)
    .Subject = sSubject
    .IsBodyHtml = TRUE
    。体= sMessage
结束与

对于i = 0到lstRecipients.Count  -  1
    mail.To.Add(lstRecipients(I))
    Debug.Print(lstRecipients(I))
    尝试
        smtp.Send(邮件)
        lSent + = 1
        bwrkMain.ReportProgress(CINT(100 *第(i + 1)/ iTotalRecipients))
        SetStatus(发送:与功放; lstRecipients(I))
    抓住EX为例外
        bwrkMain.ReportProgress(CINT(100 *第(i + 1)/ iTotalRecipients))
        SetStatus(未发送:&放大器; lstRecipients(I))
    结束尝试
    mail.To.Clear()
下一个
 

解决方案

把它留到SMTP服务器的电子邮件发给收件人。

 对于i = 0到lstRecipients.Count  -  1
    mail.To.Add(lstRecipients(I))
下一个
smtp.Send(邮件)
 

使用密件抄送属性,如果你不想让收件人看到其他的名字。

电脑太慢如何解决

am using system.net.mail to send email as shown below, but its too slow. it takes about a minute to send, whats wrong with my code. Am calling the code below in backgroundworker_dowork.

[edit]: is there a faster alternative, maybe free or open source code

' 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

解决方案

Leave it up to the SMTP server to distribute the email to the recipients.

For i = 0 To lstRecipients.Count - 1
    mail.To.Add(lstRecipients(i))
Next
smtp.Send(mail)

Use the Bcc property if you don't want the recipient to see the other names.

 
精彩推荐
图片推荐