VB6 & EMail

Dieses Thema VB6 & EMail im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von sp00n, 30. Jan. 2006.

Thema: VB6 & EMail Hi, ich möchte einmal täglich mit einem Programm von meinem Windows Server aus eine Status-Email an mich versenden....

  1. Hi, ich möchte einmal täglich mit einem Programm von meinem Windows Server aus eine Status-Email an mich versenden.

    Ich mache das über MAPI

    Das Senden funktioniert EIGENTLICH ganz gut, wenn ich nicht jedesmal bestätigen müsste, dass ein externes Programm über Outlook Express eine Email versenden darf.

    Wie könnte ich diese bestätigung automatisieren, sodass ich garnicht mehr an meinem Server manuell dran muss?


    Hier der Programmausschnitt, der fürs senden verantwortlich ist:
    Code:
    Private Sub Form_Load()
      With MAPISession1
        .UserName = email@provi.der
        .Password = eintollespw
        .SignOn
        MAPIMessages1.SessionID = .SessionID
      End With
    
      With MAPIMessages1
        .Compose
        .RecipAddress = email@provi.der
        .MsgSubject = Test-Nachricht
        .MsgNoteText = Nachrichtentext
        .ResolveName
        .Send
      End With
    End Sub
    mfG
    sp00n
     
  2. Hi, ich nochmal ;)

    Ich hab das versenden von Emails auch schon mit WinSock-Control probiert.
    Dabei hab ich mich an ein Tutorial von vbarchive.net gehalten

    Da man an den Code nur mit einem Passwort dran kommt, hab ich euch den mal mitgebracht :D

    Code:
    ' ServerName: Name des SMTP-Servers
    '  bei T-Online z.B. mailto.btx.dtag.de
    '
    ' EmpfName:  Name des Empfängers
    ' EmpfEMail: EMail-Adresse des Empfängers
    ' AbsName:  Absender-Name (Ihr Name)
    ' AbsEMail:  Absender-EMail (Ihre EMail-Adresse)
    ' Betreff:  Nachrichten-Betreff (Subject)
    ' Nachricht: Nachrichten-Text
    '======================================================
    Public Function MailSend(ServerName As String, EmpfName As _
     String, EmpfEMail As String, AbsName As String, _
     AbsEMail As String, Betreff As String, _
     ByVal Nachricht As String) As Boolean
      
     Dim Header As String
     Dim iPos As Long
     Const CR = vbNewLine
      
    -> Status-Fenster leeren
     frmStatus.txtStatus.Text = 
     If Not frmStatus.Visible Then frmStatus.Show , Me
     
     With Winsock1
     -> Anmelden am Mailserver
      lblStatus.Caption = Verbinden mit:  + _
       ServerName + ...
      .Protocol = sckTCPProtocol
      .LocalPort = 0
      .Connect ServerName, 25
    
     -> Warten, bis die Verbindung hergestellt ist
      Do While .State < sckConnected
       DoEvents
      Loop
    
     -> Keine Verbindung möglich?
      If .State > sckConnected Then
       MsgBox Kein Verbindungsaufbau möglich!
       MailSend = False
      Else
    
      -> HELO schicken (Begrüssung)
       lblStatus.Caption = Anmelden am Server...
       .SendData HELO  & ServerName & CR
       If Not WaitForResponse(250) Then GoTo Send_End
    
      -> Absender-Daten
       lblStatus.Caption = Sende Nachricht...
       .SendData MAIL FROM: < & AbsEMail & > & CR
       If Not WaitForResponse(250) Then GoTo Send_End
    
      -> Empfänger-Daten
       .SendData RCPT TO: < + EmpfEMail + > + CR
       If Not WaitForResponse(250) Then GoTo Send_End
    
      -> Server mitteilen, daß jetzt DATEN gesendet werden
       .SendData DATA & CR
       If Not WaitForResponse(354) Then GoTo Send_End
    
      -> Nachrichten-Header erstellen
       Header = From:  & AbsName & _
         < & AbsEMail & > & CR & _
        To:  & EmpfName &  < & EmpfEMail & > & CR & _
        Date:  & Format(Date, Ddd) & ,  & _
         Format(Date, dd Mmm YYYY) &   & _
         Format(Time, hh:mm:ss) &  &  +0001 & CR & _
        Subject:  & Betreff & CR
      
      -> WICHTIG!!!
      -> Prüfen, ob innerhalb des Nachrichtentextes eine
      -> Zeile nur aus einem einzigen Punkt enthält.
      -> Wenn ja, unbedingt einen zweiten Punkt anfügen,
      -> da ein einzelner Punkt das Ende der Nachricht
      -> angibt!!!
       iPos = InStr(Nachricht, vbCrLf & . & vbCrLf)
       If iPos > 0 Then
        Nachricht = Left$(Nachricht, iPos) & . & _
         Mid$(Nachricht, iPos + 1)
       End If
    
      -> Jetzt Daten senden
       .SendData Header & vbCrLf
       While Nachricht <> 
       -> Paketweise zu je 1024 Bytes senden
        .SendData Left$(Nachricht, 1024)
        Nachricht = Mid$(Nachricht, 1025)
        DoEvents
       Wend
       .SendData vbCrLf
       .SendData vbCrLf & . & vbCrLf
       
       If Not WaitForResponse(250) Then GoTo Send_End
    
      -> Abmelden am Server
       lblStatus.Caption = Abmelden vom Server...
       .SendData QUIT & CR
       If Not WaitForResponse(221) Then GoTo Send_End
       MailSend = True
      End If
     End With
     
    Send_End:
    -> Verbindung beenden
     lblStatus.Caption = Verbindung beenden...
     Winsock1.Close
     
     lblStatus.Caption = Bereit...
    End Function
    
    ' Auf Antwort warten...
    Public Function WaitForResponse(ByVal Response As _
     String) As Boolean
      
    -> spätestens nach 45 Sekunden abbrechen
     Const TimeOut = 45
     Dim iStart As Long
     
     iStart = Timer
     WaitForResponse = False
     With Winsock1
      While .Tag <> Response
      -> Bei unvorhergesehenem Verbindungsabbruch
       If .State > sckConnected And Response <> 221 Then
        MsgBox Verbindungsabbruch!, 16, Error
        Exit Function
       End If
        
      -> Wenn TimeOut überschritten, Meldung und abbrechen
       If Timer - iStart > TimeOut Then
        MsgBox TimeOut! & vbCrLf & _
         Der Server antworte nicht..., 16, TimerOut
        Exit Function
       End If
       DoEvents
      Wend
      .Tag = 
     End With
     
     WaitForResponse = True
    End Function
    
    ' Empfangen von Daten vom Server
    Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
     Dim strDaten As String
     
     Winsock1.GetData strDaten
     frmStatus.txtStatus = frmStatus.txtStatus + strDaten
     
    -> Wird für die Sub WaitForResponse benötigt
     Winsock1.Tag = Left$(strDaten, 3)
    End Sub
    So hier habe ich das Problem, dass ich nicht auf meinem mailserverconnecten kann, weil ich nciht weiss, wo ich hier das PW angeben muss.



    Ich würde mich über eine Lösung (egal für welche Methode) freuen ;)

    mfG
    sp00n
     
  3. Hat keiner ne Idee, wie ich ganz normal ne Textnachricht, ohne auf ein anderes Programm angewiesen zu sein, per VB6.0 versenden kann?

    Ist dringend :(

    mfG
    sp00n
     
  4. Ich bins nochmal ;)

    Ich hab in den letzten Tagen sehr viel über das Thema hier gegoogled. Habe mir vorgenommen, die Email mit Winsocket zu versenden.

    Doch irgendwie stoß ich bei jedem Tuturial oder sonstigen Beispielen immer auf das gleiche Problem. Ich finde keine möglichkeit für eine Passworteingabe.

    Im Beispiel oben fehlt mir auch die Passworteingabe..
    Wie funzt das bei Winsockets, wenn man niergends ein Passwort eingibt?
    oder gibt es da vielleicht doch ne möglichkeit? :D


    Freue mich über jeden beitrag ;)

    mfG
    sp00n
     
  5. Hi, danke für deine Mühe ;)

    hab gestern aber doch noch n script nach paar tagen googlen gefunden :D

    http://www.activevb.de/tipps/vb6tipps/tipp0051.html

    ^^Runter scrollen, bis zu den Kommentaren.. Die helfen mehr als der eigentliche tipp ;)
    ^^Und sich dan den eintrag Von Rene Weiss am 20.01.2006 um 18:12 angucken

    ^^Der Macht das ganze Script nochmal richtig ;)
     
Die Seite wird geladen...

VB6 & EMail - Ähnliche Themen

Forum Datum
email im Microsoft-konto ändern Windows XP Forum 10. Feb. 2016
Outlook 2007: Suchen nach verschlüsselten Emails Microsoft Office Suite 23. Juni 2015
Web.de Emails werden von OE6 nicht abgeholt....senden kein Problem Windows 8 Forum 15. März 2015
Email bei fehlerhafter Aufgabe Windows Server-Systeme 8. Jan. 2015
MSN emails können nicht gelesen werden Windows 8 Forum 8. Jan. 2015