.net - 在 Visual Studio 2005 : Problems sending E-Mail 中将旧代码从 System.Web.Mail 更新为 System.Net.Mail

标签 .net vb.net email visual-studio-2005 .net-2.0

使用过时的 System.Web.Mail 发送电子邮件工作正常,这是代码片段:

 Public Shared Sub send(ByVal recipent As String, ByVal from As String, ByVal subject As String, ByVal body As String)
        Try
            Dim Message As System.Web.Mail.MailMessage = New System.Web.Mail.MailMessage
            Message.To = recipent
            Message.From = from
            Message.Subject = subject
            Message.Body = body
            Message.BodyFormat = MailFormat.Html
            Try
                SmtpMail.SmtpServer = MAIL_SERVER
                SmtpMail.Send(Message)
            Catch ehttp As System.Web.HttpException
                critical_error("Email sending failed, reason: " + ehttp.ToString)
            End Try
        Catch e As System.Exception
            critical_error(e, "send() in Util_Email")
        End Try
    End Sub

这是更新的版本:
Dim mailMessage As New System.Net.Mail.MailMessage()

        mailMessage.From = New System.Net.Mail.MailAddress(from)
        mailMessage.To.Add(New System.Net.Mail.MailAddress(recipent))

        mailMessage.Subject = subject
        mailMessage.Body = body

        mailMessage.IsBodyHtml = True
        mailMessage.Priority = System.Net.Mail.MailPriority.Normal

        Try

            Dim smtp As New Net.Mail.SmtpClient(MAIL_SERVER)
            smtp.Send(mailMessage)

        Catch ex As Exception

            MsgBox(ex.ToString)

        End Try

我尝试了许多不同的变体,但似乎没有任何效果,我觉得这可能与 SmtpClient 有关,这些版本之间的底层代码是否发生了变化?

没有被抛出的异常。

最佳答案

System.Net.Mail 库使用配置文件来存储设置,因此您可能只需要添加这样的部分

  <system.net>
    <mailSettings>
      <smtp from="test@foo.com">
        <network host="smtpserver1" port="25" userName="username" password="secret" defaultCredentials="true" />
      </smtp>
    </mailSettings>
  </system.net>

关于.net - 在 Visual Studio 2005 : Problems sending E-Mail 中将旧代码从 System.Web.Mail 更新为 System.Net.Mail,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52321/

相关文章:

c# - 拖放至 Windows 窗体问题

c# - System.Windows.Forms.Application 和 System.Windows.Application 之间的互操作性

vb.net - 为什么 Property Setter 被调用的次数比预期的要多?

c# - 将二进制文件保存到数据库

c# - C# .NetCF 2.0 中 String.Contains() 的解决方法?

vb.net - 在一个处理程序中处理所有文本框事件

java - 如何将 MimeMultipart 添加到另一个 MimeMultipart?

email - 从 root@servername 更改外发邮件地址 - rackspace sendgrid postfix

php - 在 PHP 中防止电子邮件注入(inject)攻击的当前最佳实践是什么?

c# - 如何替换 ReadLine 以退出我的应用程序?