Asp.net System.Net.Mail.MailMessage“Reply To”标头在IIS 6.0中被忽略,但在IIS 5.1中可以

Asp.net System.Net.Mail.MailMessage“Reply To”标头在IIS 6.0中被忽略,但在IIS 5.1中可以,asp.net,header,system.net.mail,mailmessage,reply,Asp.net,Header,System.net.mail,Mailmessage,Reply,我开发了一个web应用程序项目,并在WinXP机器IIS 5.1上进行了单元测试。它已发布到Win2003Server IIS 6.0。该应用程序的一个功能是发送一封电子邮件,邮件标题下面是一段回复。在IIS 5.1计算机上,回复将正确显示在标题中。从IIS 6.0 PC发送时,标头不包含回复地址,请参见下文: Public Shared Sub SendEmail_withReplyTo(ByVal emailfrom As String, _

我开发了一个web应用程序项目,并在WinXP机器IIS 5.1上进行了单元测试。它已发布到Win2003Server IIS 6.0。该应用程序的一个功能是发送一封电子邮件,邮件标题下面是一段回复。在IIS 5.1计算机上,回复将正确显示在标题中。从IIS 6.0 PC发送时,标头不包含回复地址,请参见下文:

    Public Shared Sub SendEmail_withReplyTo(ByVal emailfrom As String, _
                                        ByVal emailto As String, _
                                        ByVal vbody As String, _
                                        ByVal vsubject As String, _
                                        ByVal msgcc As String, _
                                        ByVal msgbcc As String, _
                                        ByVal sReplyTo As String)
    Dim MyMsg As New MailMessage
    ErrorTrap.ErrorMsg = Nothing
    With MyMsg
        .From = New MailAddress(emailfrom)
        .Headers.Add("Reply-To", sReplyTo)
        .To.Add(emailto)
        If msgcc.Length > 0 Then
            .CC.Add(msgcc)
        End If
        If msgbcc.Length > 0 Then
            .Bcc.Add(msgbcc)
        End If
        .Subject = vsubject
        .IsBodyHtml = True
        .Body = vbody
    End With
    Try
        Dim smtp As New SmtpClient
        smtp.Send(MyMsg)
    Catch ex As Exception
        ErrorTrap.ErrorMsg = Nothing
        ErrorTrap.ErrorMsg = ex.ToString
    End Try
End Sub
以下internet标题是从MS Outlook 2003-视图-选项粘贴的:

从装有IIS 5.1的开发人员PC上发送的对以下内容的有效回复:

缺少从MOJITO计算机发送的对IIS 6.0的2003服务器的答复:

我甚至在Win2003机器上设置了VStudio2008,并在上面代码中的一个断点处停止,以确保mailmessage实际上是正确构建的,并将Reply to添加到它的头中。然而,当到达Outlook时,来自MOJITO服务器的消息在标题中缺少回复


是否有其他配置问题会阻碍实际代码的执行

以下是我为解决此问题所做的更改:

Dim MyMsg As New MailMessage
With MyMsg
        .From = New MailAddress(emailfrom)
        .ReplyTo = New MailAddress(sReplyTo)    'new code that fixed the problem
        '.Headers.Add("Reply-To", sReplyTo)     'old code that works on WinXP IIS 5.1 
我从Scott Mitchell的这篇伟大的文章中发现了这种替代编码方法:


似乎这两种方法都应该奏效,但现在是继续前进的时候了

昨天在一个遗留代码保留的项目中遇到了这个问题。我想可能是这样。看起来最好相信这里的抽象。谢谢你的帮助!
Return-path: <Service@zipeee.com>
Received: from MOJITO (unverified [10.10.30.14]) by mail.cbmiweb.com
(Rockliffe SMTPRA 9.2.0) with ESMTP id <B0003405883@mail.cbmiweb.com>;
Mon, 28 Jun 2010 13:37:53 -0400
Message-ID: <B0003405883@mail.cbmiweb.com>
MIME-Version: 1.0
From: Service@ZIPeee.com
To: johna@cbmiweb.com
Date: 28 Jun 2010 13:39:25 -0400
Subject: Regarding your Ad #153949: Yard sale in vienna va June 12 at 8am
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Dim MyMsg As New MailMessage
With MyMsg
        .From = New MailAddress(emailfrom)
        .ReplyTo = New MailAddress(sReplyTo)    'new code that fixed the problem
        '.Headers.Add("Reply-To", sReplyTo)     'old code that works on WinXP IIS 5.1