Mail senden

  • VB6

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Gast.

    Hi,

    hab da mal ei Problem. Will mit VB ein Prog schreiben um ne einfach mail zu senden. Hab schon ne menge nachgelesen usw... hat aber nie gefunzt.
    Hat jemand ne ahung wie des geht oder kann einer was proggen und mir mailen ???
    ICQ: 76801588

    MFG Butze
    Vielleicht hilft Dir das:

    Private Sub Command1_Click()
    'Diese Prozedur fügt unter Verwendung der Automatisierung
    'eine Nachricht in den Postausgang von Microsoft Outlook ein.
    '(Falls Sie online sind und Outlook geöffnet haben, sendet
    'Outlook diese Nachricht auch in Ihren E-Mail-Dienst.
    'Das Programm Outlook ist erforderlich. Zudem werden Sie
    'feststellen, dass dieses Programm schneller arbeitet
    'weniger Speicher belegt, wenn Outlook bereits ausgeführt wird.

    Dim out As Object 'Objektvariable anlegen
    'Objekt Outlook.Application der Objektvariable zuweisen
    Set out = CreateObject("Outlook.Application")

    With out.CreateItem(olMailItem) 'Mit Hilfe des Outlook-Objekts
    'und dessen Add-Methode nacheinander einzelne Empfänger definieren
    '(Diese Namen sind fikiv, verwenden Sie Ihre eigenen Namen)
    .Recipients.Add "mike_halvorson@classic.msn.com").Type = olCC
    .Subject = "Testnachricht" 'Betreff-Feld definieren
    .Body = Text1.Text 'Nachrichtentext aus dem Textfeld kopieren
    'Mit der Methode Add Anlagen hinzufügen
    .Attachments.Add "h:\vb6sfs\lekt14\smile.bmp"
    'Schließlich mit Send die Nachricht in den Outlook-Postausgang kopieren
    .Send
    End With

    End Sub

    Ralf
    Das ganze funktioniert aber nur einzig und allein dann, wenn man Outlook installiert hat und das auch benutzen möchte. Sobald man Outlook Express oder ein anderes der vielen verfügbaren Mail Programme installiert hat, so funktioniert es schon nicht mehr. Es gibt nur eine einzige Möglichkeit, wie man eine Mail senden kann, egal welches Mail Programm man benutzt. Nachteil: Anhänge an der Mail und Zeilenumbrüche im Mailtext sind nicht möglich.

    Beispiel:

    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

    Public Sub SendMail()
    Dim Result As Long
    Result = ShellExecute(Me.hWnd, "open", "mailto:webmaster@vb-paradise.de?subject=Test Mail", vbNullstring, vbNullstring, 1)
    End Sub
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Hallo,

    habe folgende Frage: wie muß ich die Variablen Deklaration für die Prozedur "Send Mail" anpassen. Verstehe nicht ganz was in der Deklaration passiert.
    Außerdem kommt immer die Fehlermeldung: Ungültige Verwendung des Schlüsselworts Me (aus Me.hWnd). Wofür steht "Me.hWnd?
    Bin dankbar für jeden Hinweis.

    schy3
    Me.hWnd bezeichnet das Fensterhandle des aktuellen Fensters. Wenn die Funktion in einem Modul aufgerufen wird, gibt es natürlich weder das Me-Objekt, noch ein Fensterhandle. Dann musst du das halt aus dem aufrufenden Formular mit übergeben (als Parameter an die Prozedur).

    Result = ShellExecute(Me.hWnd, "open", "mailto:webmaster@vb-paradise.de?subject=Test Mail", vbNullstring, vbNullstring, 1)

    Der erste Parameter ist wie gesagt das Fensterhandle, der zweite sagt einfach nur, dass das nachfolgende Programm geöffnet werden soll (oder ein E-Mail Link), dann kommt der eigentliche Befehl, dies ist hier der Mail-Link, dann kommen Parameter die hier leer bleiben können, dann das Arbeitsverzeichnis welches ebenfalls nicht benötigt wird und zum Schluss kommt noch eine 1 für ein normal großes Fenster (man kann es auch maximiert öffnen).
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Bisher wurde die Mail aber nur in den Postausgang gelegt.
    Wie kann ich jetzt noch dafür sorgen, dass die Mail auch wirklich abgeschickt wird und nicht im Postfach verbleibt bis ich den Knopf "Senden/Empfangen" drücke oder die Zeitautomatik zuschlägt ?

    Wie kann ich Mails vom Serviceprovider abrufen wenn keine Mail im Postausgang liegt ?

    Gruß
    Karsten