IIS 7 + Windows Server 2008 - Senden von E-Mails von Classic ASP mithilfe von CDO

Auf unsere bestehende Plattform, die wir beschlossen, ein upgrade unserer Entwicklungs-server von Windows Server 2003 auf 2008 vor einiger Zeit.

Das problem, das wir stehen, ist, dass alle asp-Skripte, die zum senden von E-Mails vorher hatten wir Windows Server 2003 gearbeitet. Nun, Sie aufgehört zu arbeiten ohne Fehler auf der Seite oder auf dem SMTP-Protokolle.

Wenn ich mit telnet eine email zu senden manuell, funktioniert einwandfrei.

Aber es funktioniert nicht aus unserem classic asp-Skripts.

Dies ist unsere ASP-code

Sub SendEmail(fromEmail, toEmail, ccEmail, bccEmail, subject, body, somefiles)
    Set m_Mailer = Server.CreateObject("CDO.Message")

    With m_Mailer.Configuration.Fields
      .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 1
      .Item("http://schemas.microsoft.com/cdo/configuration/smptserver") = Request.ServerVariables("server_name")
      .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory")=SMTP_SERVER_PICKUP_DIRECTORY
      .Update
    End With

    If m_CharacterSet <> "" Then
      m_Mailer.BodyPart.Charset = m_CharacterSet
    End If

    m_Mailer.To = toEmail
    m_Mailer.CC = ccEmail
    m_Mailer.BCC = bccEmail
    m_Mailer.From = fromEmail
    m_Mailer.ReplyTo = fromEmail
    m_Mailer.Subject = subject
    If m_UseHtmlFormat Then
      m_Mailer.HTMLBody   = FixText(body)
    Else
      m_Mailer.TextBody   = FixText(body)
    End If

    Dim i
    somefiles = Split(somefiles, vbTab)
    For i = 0 to UBound(somefiles)
        m_Mailer.AddAttachment(somefiles(i))
    Next
        m_Mailer.Send
End Sub

Habe ich überprüft Berechtigungen auf den Ordner mailroot und der IIS-Benutzer hat die volle Kontrolle. Ich habe bereits die relais auf 127.0.0.1, und gab der IIS-Benutzer Zugriff auf den smtp-als auch.

Wenn ich mit telnet bekomme ich alles auf das Protokoll und die E-Mail erhalten richtig.

Aber auch beim Einsatz dieses test-script habe ich nicht bekommen, jede E-Mail, dass Sie stecken bleiben auf den Ordner "pickup"

Dim emailer 
Set emailer = New EmailHelper
emailer.SendEmail "[email protected]", "[email protected]", "", "", "Test 1 2 3 from " & Request.ServerVariables("HTTP_HOST"), "Test...", ""

Set emailer = Nothing

Response.Write "DONE"

Wenn ich versuche, führen diese test-script bekomme ich immer "FERTIG" auf der Seite, aber keine E-Mail.

SMTP ist bereits installiert und aktiviert.

Jede Hilfe wäre toll,

  • Sehr schön, aber was ist m_CharacterSet, und was macht FixText tun?
  • Beachten Sie auch diese Linie .Item("schemas.microsoft.com/cdo/configuration/smptserver") = Request.ServerVariables("server_name") - Sie eingegeben haben smptserver. Lesen sollte smtpserver.
Schreibe einen Kommentar