Announcement

Collapse
No announcement yet.

E-Mail Versand - SMTP

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • E-Mail Versand - SMTP

    Hallo alle zusammen,

    Umgebung Client: VB2008, WindowsXP
    Umgebung Host: Windows Server 2003/Exchange-Server

    Ich möchte ein Überwachungsprogramm schreiben, welches regelmäßig (z.B. 1 x täglich) ein Protokoll versendet. Da dieses Programm unabhängig von der Einschaltung eines Clients laufen soll, wird es auf dem Applikationsserver installiert. Ein E-Mail-Client wird dort nicht exisieren. Deshalb soll aus dem Programm ein Versand über SMTP erfolgen. Folgenden Code habe ich zum Test erstellt;
    Code:
      Sub Main()
            mail_send()
        End Sub
        Sub mail_send()
            Try
                Dim myMail As New System.Net.Mail.MailMessage
                'Dim cred As New CredentialCache
                myMail.Body = "Musterinhalt"
    
                myMail.From = New System.Net.Mail.MailAddress("[email protected]", "Admin")
    
                myMail.Subject = "Musterbetreff"
                myMail.Body = "nichts weiter - nur Test"
    
                myMail.To.Add(New System.Net.Mail.MailAddress("[email protected]"))
    
                Dim myClient As New System.Net.Mail.SmtpClient()
                myClient.Credentials = New NetworkCredential("systemuser", "systempw")
                myClient.UseDefaultCredentials = False
                myClient.Port = 25
                myClient.Host = "192.1xx.1xx.1"
                myClient.EnableSsl = True
                myClient.Send(myMail)
                MsgBox("mail versendet")
            Catch exsmtp As System.Net.Mail.SmtpException
                MsgBox(exsmtp.Message & "" & exsmtp.StatusCode)
            Catch ex As Exception
                MsgBox(Err.Number & " " & Err.Description & " " & ex.StackTrace.ToString)
    
            End Try
        End Sub
    Nach myClient.Send(myMail) springt das Programm in die SMTP-Exception. Die Fehleraussage ist nicht gerade weiterführend ->'Fehler beim senden von Mail'.
    Leider komme ich nicht so recht weiter, wo der eigentliche Fehler liegt. Hat jemand eine Idee?

    mfg dbfreak

  • #2
    Vielleicht, weil der Applicationserver keine Messagebox anzeigen kann?

    Ggf. wie lautet der Statuscode?
    Christian

    Comment


    • #3
      Hallo,

      vielen Dank für die rückmeldung. Ich teste aber erstmal auf meinem PC. Bis zur MessageBox kommt er ja auch noch nicht. Der Fehler wird mir auf dem PC angezeigt. Er springt wirklich beim send in den Catch-Block.

      Comment


      • #4
        Statuscode?
        Christian

        Comment


        • #5
          Hallo Christian,

          der Statuscode=-1

          Comment


          • #6
            hmmm, einen SMTP Code -1 gibt es nicht.....

            http://www.webstop-webdesign.de/wissen/smtp-status.htm


            myClient.UseDefaultCredentials = False

            Musst du dich auf dem SMTP-Server authentifizieren? Dann wäre da true zu setzen
            Christian

            Comment


            • #7
              -1 heißt vermutlich das du den SmtpServer nicht erreicht hast. Ist die IP korrekt oder läuft die Firewall auf deinem Server und du kommst über Port 25 gar nicht raus?

              Comment


              • #8
                Hallo Christian,

                lt MS:
                Wenn die UseDefaultCredentials-Eigenschaft auf false, festgelegt ist, wird beim Herstellen einer Verbindung mit dem Server der in der Credentials-Eigenschaft festgelegte Wert für die Anmeldeinformationen verwendet. Wenn die UseDefaultCredentials-Eigenschaft auf false und die Credentials-Eigenschaft nicht festgelegt ist, werden E-Mails anonym an den Server gesendet.

                In diesem Sinne hatte ich es auf false gesetzt.
                Und wie komme ich an den eigentlichen SMTP-Code ran? Für System.Net.Mail.SmtpException gibt es nur den Statuscode. Den richtigen Code zu haben, würde sicher beim Eingrenzen des Fehlers helfen.


                @Ralf J.
                Die IP ist korrekt.
                Das Thema mit der Firewall muss ich mir in der Firma nochmal ansehen. Bin aber noch unterwegs beim Kunden.

                Comment


                • #9
                  Den richtigen Code zu haben, würde sicher beim Eingrenzen des Fehlers helfen.
                  Statuscode sollte schon der richtige sein. Für mehr Details zum Problem könntest du noch prüfen ob die SmtpException noch ein InnerException hat mit mehr Details.

                  Comment

                  Working...
                  X