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.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Lösung gefunden! (Zumindest ist es bei mir funktioniert)
Habe ich entfernt, diese Linie
Konfiguriert und SMTP in der IIS 7-Konsole verwenden Sie "localhost" anstelle von pickup-Verzeichnis und das funktioniert jetzt perfekt!