In diesem kleinen Tutorial möchte ich euch zeigen wie ihr schnell und einfach in Vb.net
den Inhalt einer Textbox als E-Mails mit Anhang via Smtp verschicken könnt.
Ich habe zum Erstellen Visual Basic 2008 Express benutzt.
Ich werde euch jetzt Schritt für Schritt meinen Beispielcode erklären.
Erstellt zu allererst eine neue Windows-Forms Anwendung
( Datei > Neues Projekt > Windows-Forms Anwendung)
Dieser Form fügt ihr 2 Textboxen , 1 Checkbox und 1 Command Button hinzu.
(Ihr könnt euch an meinem Bild orientieren. )
Weiter gehts mit dem Code
Mit einem Doppelklick auf den Command Button öffnet ihr die Code Ansicht.
Auf gehts !
Damit unser Code funktionieren kann wie er soll , müsst ihr außerhalb der Public Class (Wichtig!)
Die Zeile
Weiter gehts mit unserem Button. Da unser Programm auf Knopfdruck eine E-Mail versenden soll ,
muss der folgende Code in der Routine des Buttons stehen.
(Ihr könnt natürlich auch eine eigene Routine erstellen und sie nach Bedarf aufrufen. )
Als erstes wird in unserem Beispielcode die Variable Msg als MailMessage definiert
und die Variable myCredentials als System.Net.NetworkCredential .
(Wie jedem klar sein sollte könnt ihr die Variablen frei bestimmen.)
Um eine E-Mail verschicken zu können brauchen wir einen Postausgansserver.
Der nächste Teil unseres Codes beschäftigt sich mit diesem Smtpserver.
Die Variable mySmtpsvr wird als unser Ausgansserver definiert.
In der Zeile
In
Falls ihr die Adresse oder den Port nicht wisst hilft euch ein Blick auf
Um E-Mails verschicken zu können müsst ihr euch aber auch an eurem Ausgangsserver anmelden.
Die nächsten Zeilen des Programms beschäftigen sich damit.
und unter myCredentials.Password euer Passwort ab.
Da wir uns in unserem mit unseren Anmeldedaten anmelden muss mySmtpsvr.UseDefaultCredentials
= False sein. ( Wir benutzen keine Default Credentials - sondern unsere ! )
Zu guterletzt bestimmen wir mit
den Inhalt einer Textbox als E-Mails mit Anhang via Smtp verschicken könnt.
Ich habe zum Erstellen Visual Basic 2008 Express benutzt.
Ich werde euch jetzt Schritt für Schritt meinen Beispielcode erklären.
Erstellt zu allererst eine neue Windows-Forms Anwendung
( Datei > Neues Projekt > Windows-Forms Anwendung)
Dieser Form fügt ihr 2 Textboxen , 1 Checkbox und 1 Command Button hinzu.
(Ihr könnt euch an meinem Bild orientieren. )
Weiter gehts mit dem Code
Mit einem Doppelklick auf den Command Button öffnet ihr die Code Ansicht.
Auf gehts !
Damit unser Code funktionieren kann wie er soll , müsst ihr außerhalb der Public Class (Wichtig!)
Die Zeile
hinzufügen.Quote:
Imports System.Net.Mail
Weiter gehts mit unserem Button. Da unser Programm auf Knopfdruck eine E-Mail versenden soll ,
muss der folgende Code in der Routine des Buttons stehen.
(Ihr könnt natürlich auch eine eigene Routine erstellen und sie nach Bedarf aufrufen. )
Als erstes wird in unserem Beispielcode die Variable Msg als MailMessage definiert
und die Variable myCredentials als System.Net.NetworkCredential .
(Wie jedem klar sein sollte könnt ihr die Variablen frei bestimmen.)
Um eine E-Mail verschicken zu können brauchen wir einen Postausgansserver.
Der nächste Teil unseres Codes beschäftigt sich mit diesem Smtpserver.
Die Variable mySmtpsvr wird als unser Ausgansserver definiert.
In der Zeile
legen wir die Adresse unseres Ausgangsservers fest.Quote:
mySmtpsvr.Host = " smtp.provider.de"
In
bestimmen wir noch den dazugehörigen Port.Quote:
mySmtpsvr.Port = 25
Falls ihr die Adresse oder den Port nicht wisst hilft euch ein Blick auf
Um E-Mails verschicken zu können müsst ihr euch aber auch an eurem Ausgangsserver anmelden.
Die nächsten Zeilen des Programms beschäftigen sich damit.
Diseser Teil sollte soweit eigentlich klar sein. Ihr speichert unter myCredentials.UserName euren BenutzernamenQuote:
myCredentials.UserName = "Beispiel_Username"
myCredentials.Password = "Beispiel_Passwort"
mySmtpsvr.UseDefaultCredentials = False
mySmtpsvr.Credentials = myCredentials
und unter myCredentials.Password euer Passwort ab.
Da wir uns in unserem mit unseren Anmeldedaten anmelden muss mySmtpsvr.UseDefaultCredentials
= False sein. ( Wir benutzen keine Default Credentials - sondern unsere ! )
Zu guterletzt bestimmen wir mit
das wir uns mit unseren Credentials an dem Server anmelden möchten.Quote:
mySmtpsvr.Credentials = myCredentials
Weiter gehts mit unserer E-Mail.
Ich habe die Routine in den Try Block gesetzt um Fehler (Zb. beim anhängern einer Datei)mit einer MsgBox abzufangen.
Falls ihr euch bis jetzt noch nicht mit der IOException Klasse auseinander gesetzt habt und Fehler
entstehen sollten könnte euch ein Blick auf weiterhelfen.
Als allererstes bestimmen wir mit
das der Inhalt unserer E-Mail kein Html Code ist.Quote:
Msg.IsBodyHtml = False
Solltet ihr versuchen die E-Mail in Html zu gestalten muss der Wert natürlich auf True geändert werden.
In
wird die Absendeadresse bestimmt.Quote:
Msg.From = New MailAddress("")
(Die E-Mail Adresse von der ihr eure E-Mails verschickt.)
Weiter gehts mit
. Hier bestimmt ihr den Empfänger eurer EmailQuote:
Msg.To.Add(TextBox1.Text)
In meinem Beispiel wird der Empfänger per Eingabe aus der Textbox1.text ermittelt.
Solltet ihr eine statische E-Mail Adresse verwenden wollen müsst ihr diese E-Mail Adresse in " " in der Klammer eintragen.
Zb. : Msg.To.Add("Empfä")
Mit
bestimmen wir unseren E-Mail Betreff.Quote:
Msg.Subject = "Vb.net E-Mail Versand via Smtp"
Jetzt gehts zum Text.
In dem Beispiel wird ein vordefinierter Text des Programmierers + die Benutzereingabe(Textbox2.text) versendet.Quote:
Msg.Body = "Vordefinierter Text" + TextBox2.Text
Zum Schluss wollen wir noch das wenn die Checkbox markiert wird ein Anhang angehängt wird.
Wir definieren zuerst unsere Variable att als Anhang
Danach bestimmen wir mitQuote:
Dim att As Attachment = Nothing
den Pfad zu unserem anhang. Dieser ist in meinem Beispiel fest.Quote:
att = New Attachment("C:\Documents and Settings\All Users\Documents\SC\Anhang.txt")
Ihr könnt diesen natürlich auch über eine Benutzereingabe bestimmen.
Zu guterletzt bestimmen wir noch das der Anhang nur angehängt wird wenn die Checkbox markiert wird.Quote:
If CheckBox1.Checked = True Then Msg.Attachments.Add(att)
Mit mySmtpsvr.Send(Msg)senden wir dann unsere E-Mail die auf unseren eingebenen Daten basiert.
Zum Schluss noch eine Msgbox wenn alles gut läuft.
UndQuote:
MsgBox("E-Mail gesendet.", MsgBoxStyle.Information, Title:="Information")
falls etwas schief läuft.Quote:
Catch ex As Exception
MsgBox("E-Mail wurde nicht gesendet.", MsgBoxStyle.Critical, Title:="Fehler")
Geschafft !
Ich habe versucht dieses Tutorial so Anfängerfreundlich wie möglich zu halten und hoffe ihr konntet mir gut
durch dieses Tutorial folgen. Falls ihr euch nicht selbst durch den Code
arbeiten wollt biete ich euch noch das ganze VB.net Projekt zum Download an.