使用vb.net发送背靠背电子邮件的问题

时间:2011-06-17 01:24:29

标签: vb.net smtp

我们在其中一个网站上发送背靠背电子邮件时遇到问题。该站点使用.net framework 2.0构建。

我们可以在每次尝试时发送第一封电子邮件,没有任何问题。但要发送第二封电子邮件,您需要等待大约20-30分钟。

以下是我们的代码,如果它有助于诊断问题。

我们尝试的一件事是更改smtp电子邮件服务器。我们尝试了第三方smtp服务器,但同样的问题仍然存在。所以我认为问题不在于smtp服务器,而在于我们的.net代码。

Imports Microsoft.VisualBasic

Imports System.Net
Imports System.Net.Mail

Namespace websiteCode
    Public Class mailer
        Const mailTo As String = "receiver@test.com"
        Const mailFrom As String = "sender@test.com"
        Const smtpServer As String = "192.168.1.1"
        Const username As String = "user"
        Const password As String = "password"



        Public Function send(ByVal emailaddress As String, ByVal messagebody As String, ByVal subject As String) As Boolean
            'If checkdata(emailaddress, messagebody) Then
            Using mm As New MailMessage(mailFrom, mailTo)
                mm.To.Add(New MailAddress("receıver@test.com"))
                mm.Subject = subject
                mm.Body = messagebody
                mm.IsBodyHtml = True
                mm.ReplyTo = New MailAddress(emailaddress)
                Dim smtp As New SmtpClient
                smtp.Host = smtpServer
                smtp.UseDefaultCredentials = False
                smtp.Credentials = New NetworkCredential(username, password)



                Try
                    smtp.Send(mm)
                    Return True
                Catch ex As Exception
                    Return False
                End Try

            End Using
            Return True
        End Function




    End Class
End Namespace  

UPDATE-1:解决方案

<%@ OutputCache CacheProfile="static" %>

从.aspx文件中删除上述代码解决了这个问题。现在我可以发送回电子邮件,没有任何问题 我已经google了一下,看看有没有人解释这个指令如何与电子邮件发送冲突,但到目前为止我没有任何线索 无论如何,这个问题已经解决了。

&lt;%@ OutputCache CacheProfile =“static”%&gt;

1 个答案:

答案 0 :(得分:0)

我不确定这是否是您的错误的原因,但是一旦完成,您应该清楚地处理SmtpClient对象。来自文档:

  

SmtpClient类没有Finalize   方法,所以应用程序必须调用   处理明确释放   资源。 Dispose方法迭代   通过所有已建立的联系   主机中指定的SMTP服务器   属性并发送QUIT消息   然后优雅地结束TCP   连接。 Dispose方法也   释放使用的非托管资源   由Socket和可选配置   管理资源。

编辑:对于.NET框架&lt; 4.0实际上没有配置方法。您可以尝试建议的here变通方法。另一个建议的解决方法here。希望这会有所帮助。