Заголовок «Reply-To» System.Net.Mail.MailMessage игнорируется в IIS 6.0, но в IIS 5.1 работает нормально. - PullRequest
2 голосов
/ 29 июня 2010

У меня есть проект веб-приложения, разработанный и протестированный на компьютере с WinXP (IIS 5.1).Он был опубликован на сервере Win2003 (IIS 6.0).Одна функция приложения отправляет электронное письмо с заголовком «Reply-To» (фрагмент приведен ниже).На компьютере IIS 5.1 Reply-To правильно отображается в заголовке.При отправке с компьютера с IIS 6.0 заголовок не содержит адрес для ответа (см. Ниже):

    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

Следующие интернет-заголовки вставляются из MS Outlook 2003 - Просмотр- Опции:

Действительный ответ-ответ, отправленный с компьютера JOHNXP (ПК разработчика с IIS 5.1):

Return-path: <Service@zipeee.com>
Received: from JohnXP (unverified [10.10.30.66]) by mail.cbmiweb.com
(Rockliffe SMTPRA 9.2.0) with ESMTP id <B0003406093@mail.cbmiweb.com>;
Mon, 28 Jun 2010 15:16:25 -0400
Message-ID: <B0003406093@mail.cbmiweb.com>
Reply-To: terriadams@cox.net
MIME-Version: 1.0
From: Service@ZIPeee.com
To: johna@cbmiweb.com
Date: 28 Jun 2010 15:17:57 -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

Отсутствует ответ-какотправлено с компьютера MOJITO (сервер 2003 с IIS 6.0):

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

Я даже настроил VStudio2008 на компьютере Win2003 и остановился на точке останова внутри кода выше, чтобы убедиться, что почтовое сообщениена самом деле был правильно построен с добавлением "Reply-To" в заголовок (это так).Тем не менее, при поступлении в Outlook, сообщение, исходящее с сервера MOJITO, не имеет «Reply-To» в заголовке.

Существуют ли другие проблемы с конфигурацией, которые могут помешать выполнению действительного кода?

1 Ответ

5 голосов
/ 30 июня 2010

Вот что я изменил, чтобы исправить это:

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 

Я обнаружил этот альтернативный подход к кодированию в этой замечательной статье Скотта Митчелла:

"Отправка электронной почты в ASP.NET 2.0: ответные, приоритетные и прочитанные квитанции "

Похоже, что любой метод должен работать, но пришло время двигаться дальше.

...