VBA Outlook 2000: Es wird keine Mail versandt

Home-›Foren-›Outlook-›VBA Outlook 2000: Es wird keine Mail versandt

  • Dieses Thema hat 8 Antworten und 3 Stimmen, und wurde zuletzt aktualisiert 15:15 um 7. August 2004 von lastwebpage.
9 Antworten anzeigen - 1 bis 9 (von insgesamt 9)
  • Autor
    Beitrag
  • #23593
    Unbekannt
    Teilnehmer

      Hallo,

      ich habe ein Formular für OL 2000 gemacht und will damit jetzt Mails versenden. Habe für die Felder An, CC, BCC jeweils Combo-felder im Einsatz. Wenn eines der Combo-Felder leer ist, dann so Fehlermeldung kommen. Wenn eines oder max. drei Combo-Felder mit Inhalt versehen sind, dann soll versandr werden. Leider klappt es nicht.

      Hier der Code der Versende-Funktion:

      Dim iAN As Integer, iCC As Integer, iBCC As Integer
      For iAN = 0 To cmbAN.ListCount – 1
      For iCC = 0 To cmbCC.ListCount – 1
      For iBCC = 0 To cmbBCC.ListCount – 1
      If Trim(cmbAN.Value) <> \”\” Or Trim(cmbCC.Value) <> \”\” Or Trim(cmbBCC.Value) <> \”\” Then
      EmailSenden Me.cmbAN.List(iAN), Me.cmbCC.List(iCC), Me.cmbBCC.List(iBCC), Me.txtBetreff, Me.rtNachricht, Me.rtAktuelles, Me.txtLogo, Me.txtNews, Me.txtAnlage, Me.cmbPrijoritaet.ListIndex
      Else
      MsgBox \”Sie müssen in die Felder \’An\’, \’Cc\’ oder \’Bcc\’ mindestens eine gültige E-Mail-Adresse eingeben\”, vbExclamation
      End If
      Next iBCC
      Next iCC
      Next iAN
      MsgBox \”E-Mail wurde erfolgreich versandt\”, vbInformation
      Unload Me

      End Sub

      Hat jemand eine Idee, warum das nicht geht?

      mfg
      BenC

      #79108
      lastwebpage
      Moderator

        Hallo,
        äh dumme Frage,aber wie soll das gehen????
        For a=0 TO -1 (CB Leer)
        IRGENDWAS
        Next a

        IRGENDWAS,wird leider nicht ausgeführt…

        mfg
        Peter

        #79148
        Mailer-Daemon
        Teilnehmer

          Hallo,

          so ganz blicke ich da nicht ohne weiteres durch. Vielleicht kommentierst Du Deine Codezeilen mal, dann wird das verständlicher. Auf jeden Fall fehlt da für mich der Bezug zum Namespace, also auf die Daten Deines persönlichen Ordners. Das kann aber in einer anderen Routine, die Du nicht gepostet hast passiert sein.

          Ansonsten einfach mal probieren :

          Dim ol, olns as Object

          Set ol = createObject (\”Outlook.Application\”)
          Set olns = ol.getnamespace (\”MAPI\”)

          Greetings from
          your personal Mailer-DAEMON !...!

          #79153
          lastwebpage
          Moderator

            Ich weis leider nicht ob es sich da um einen logischen Fehler handelt,oder ob das Problem beim Funktions aufruf der Senden funktion besteht.Ich versuche mal das Listing zu \”verschönern\” (sorry für die C Kommentare)

            Dim iAN As Integer, iCC As Integer, iBCC As Integer [i]//Variabeln definition [/i]
            [i]// Überprüfen ob was in den Comboboxen steht,wenn ja die Adresseinträge durchlaufen[/i]
            For iAN = 0 To cmbAN.ListCount – 1
            For iCC = 0 To cmbCC.ListCount – 1
            For iBCC = 0 To cmbBCC.ListCount – 1
            [i] //prüfen ob überhaupt was in der Variabel steht,wenn JA Funktionsaufruf,wenn NEIN Fehlermeldung[/i]
            If Trim(cmbAN.Value) <> \”\” Or Trim(cmbCC.Value) <> \”\” Or Trim(cmbBCC.Value) <> \”\” Then
            EmailSenden Me.cmbAN.List(iAN), Me.cmbCC.List(iCC), Me.cmbBCC.List(iBCC), Me.txtBetreff, Me.rtNachricht, Me.rtAktuelles, Me.txtLogo, Me.txtNews, Me.txtAnlage, Me.cmbPrijoritaet.ListIndex
            Else
            MsgBox \”Sie müssen in die Felder \’An\’, \’Cc\’ oder \’Bcc\’ mindestens eine gültige E-Mail-Adresse eingeben\”, vbExclamation
            End If
            [i]//Schleifen beenden,Hinweis ausgeben,und Form schliessen [/i]
            Next iBCC
            Next iCC
            Next iAN
            MsgBox \”E-Mail wurde erfolgreich versandt\”, vbInformation
            Unload Me

            End Sub

            Sorry,im Moment fällt mir zu den For Schleifen nichts ein

            [Editiert am 5/8/2004 von lastwebpage]

            #79168
            lastwebpage
            Moderator

              Hallo nochmal,
              je mehr ich darüber nachdenke,je verwirrter werde ich,da ich mir nicht sicher bin was da überhaupt passieren soll.
              Du hast 3 Listfelder,wo der Benutzer jeweils keinen,einen oder mehrere Personen auswählen kann. Bei Klick auf einen Schalter soll dann die Mail an diese Personen verschickt werden.

              Stimmt das so?

              mfg
              Peter

              #79237
              Unbekannt
              Teilnehmer

                Hallo,

                bitte entschuldigt alle, jetzt kommt der komplette Code:

                [code]
                Private Sub cmdSenden_Click()

                Dim iAN As Integer, iCC As Integer, iBCC As Integer
                For iAN = 0 To cmbAN.ListCount – 1
                For iCC = 0 To cmbCC.ListCount – 1
                For iBCC = 0 To cmbBCC.ListCount – 1
                If Trim(cmbAN.Value) <> \”\” Or Trim(cmbCC.Value) <> \”\” Or Trim(cmbBCC.Value) <> \”\” Then
                EmailSenden Me.cmbAN.List(iAN), Me.cmbCC.List(iCC), Me.cmbBCC.List(iBCC), Me.txtBetreff, Me.rtNachricht, Me.rtAktuelles, Me.txtLogo, Me.txtNews, Me.txtAnlage, Me.cmbPrijoritaet.ListIndex
                Else
                MsgBox \”Sie müssen in die Felder \’An\’, \’Cc\’ oder \’Bcc\’ mindestens eine gültige E-Mail-Adresse eingeben\”, vbExclamation
                End If
                Next iBCC
                Next iCC
                Next iAN
                MsgBox \”E-Mail wurde erfolgreich versandt\”, vbInformation
                Unload Me
                End Sub

                Private Sub EmailSenden(sAn As String, Optional sCC As String, Optional sBCC As String, Optional sBetreff As String, Optional sNachricht As String, Optional sAktuelles As String, Optional sLogo As String, Optional sNews As String, Optional sDateiAnhang As String, Optional sPr As Long)

                Dim sTempNachricht As String
                Dim sTempAktuelles As String
                Dim NachrichtOL As Object
                Dim meinCC As Recipient
                Dim meinBCC As Recipient
                Set AppOL = GetObject(, \”Outlook.Application\”)
                Set NameSpaceOL = AppOL.GetNamespace(\”MAPI\”)
                Set NachrichtOL = AppOL.CreateItem(olMailItem)
                Set meinCC = NachrichtOL.Recipients.Add(sCC)
                meinCC.Type = 2
                Set meinBCC = NachrichtOL.Recipients.Add(sBCC)
                meinBCC.Type = 3
                With NachrichtOL
                .Recipients.Add sAn
                .CC = sCC
                .BCC = sBCC
                .Subject = sBetreff
                .Importance = sPr

                sTempNachricht = sNachricht
                sTempNachricht = Replace$(sTempNachricht, vbCrLf, \”\”)
                sTempNachricht = Replace$(sTempNachricht, vbNewLine, \”\”)
                sTempNachricht = Replace$(sTempNachricht, \” \”, \”  \”)

                sTempAktuelles = sAktuelles
                sTempAktuelles = Replace$(sTempAktuelles, vbCrLf, \”\”)
                sTempAktuelles = Replace$(sTempAktuelles, vbNewLine, \”\”)
                sTempAktuelles = Replace$(sTempAktuelles, \” \”, \”  \”)

                .HTMLBody = \”{html}{body topmargin=\”\”0\”\” leftmargin=\”\”0\”\”}\” & Chr(13) & _
                \”{table border=\”\”0\”\” width=\”\”100%\”\” cellspacing=\”\”10\”\” cellpadding=\”\”0\”\”}{tr}{td width=\”\”72%\”\” height=\”\”30\”\” valign=\”\”top\”\” align=\”\”left\”\” background=\”\”\” & sLogo & \”\”\”}\” & _
                \”{/td}{td width=\”\”28%\”\” height=\”\”30\”\” valign=\”\”top\”\” align=\”\”left\”\” background=\”\”\” & sNews & \”\”\”}{/td}{/tr}{/table}\” & _
                \”{table border=\”\”0\”\” width=\”\”100%\”\” cellspacing=\”\”10\”\” cellpadding=\”\”0\”\”}{tr}{td width=\”\”72%\”\” height=\”\”30\”\” valign=\”\”top\”\” align=\”\”left\”\”}\” & _
                \”{font face=\”\”Avantgarde Bk Bt, Century Gothic, Arial, Verdana\”\” color=\”\”000000\”\” size=\”\”2\”\”}\” & sTempNachricht & \”{/font}{/td}\” & _
                \”{td width=\”\”28%\”\” height=\”\”30\”\” valign=\”\”top\”\” align=\”\”left\”\”}{font face=\”\”Avantgarde Bk Bt, Century Gothic, Arial, Verdana\”\” color=\”\”000000\”\” size=\”\”2\”\”}\” & sTempAktuelles & \”{/font}{/td}\” & Chr(13) & _
                \”{/tr}{/table}{/body}{/html}\”
                If sDateiAnhang <> \”\” Then
                .Attachments.Add Source:=sDateiAnhang, Position:=Len(txtAnlage) + 20
                End If
                .Send
                End With
                End Sub
                [/code]

                mfg
                BenC

                Ich habe das mal editiert,damit keine Tabellen mittem im Code stehen.
                die geschweiften Klammern sind eigendlich dreieckige,aber damit kommt das Forum anscheinend nicht klar.

                [Editiert am 7/8/2004 von lastwebpage]

                #79238
                lastwebpage
                Moderator

                  Hallo,
                  leider weis ich nicht ob es sich da um einen logischen Fehler handelt,oder ob die EMailSenden Methode nicht stimmt.
                  Also wie gesagt das mit den 3 For-Schleifen und der If Abrage kommt mir seltsam vor,
                  bin mir aber nicht sicher ob da deine Problem liegt oder woanders.

                  mfg
                  Peter

                  #79239
                  Mailer-Daemon
                  Teilnehmer

                    Hallo,

                    also 2 Dinge die mir dazu einfallen sind :

                    1. zum testen gib mal in der EmAil Senden Routine statt .send .save ein. DAnn wird die mail gespeichert in Entwürfe und Du kannst Dir die mail mal näher anschauen.

                    2. Am ehesten gibt es ein Problem beim Aufruf der Senden Routine. Vielleicht klappt da die übergabe als String nicht (Felder San Sbcc Scc). Bin nicht ganz sicher, aber zum Ausprobieren vielleicht mal in der aufrufenden Routine und in der aufgerufenen Routine den Datentyp Variant benutzen (zum Testen).

                    Greetings from
                    your personal Mailer-DAEMON !...!

                    #79240
                    lastwebpage
                    Moderator

                      Hallo,
                      wie Mailer-Daemon schon sagte:
                      1.Teste diese Senden Routine erstmal einzeln,in dem du von Hand irgendwelche Werte vorgibst un diese dann aufrufst.
                      2.Dasselbe mit der cmdClick Funktion da würde ich den Aufruf der Senden Methode durch eine
                      geeignete MessageBox ersetzen.

                      mfg
                      Peter

                      Ich weis aber immer noch nicht 100% wo eigentlich das Problem ist….

                    9 Antworten anzeigen - 1 bis 9 (von insgesamt 9)

                    Das Thema ‘VBA Outlook 2000: Es wird keine Mail versandt’ ist für neue Antworten geschlossen.

                    -