Tipp-Upload: VB.NET 0180: Versenden einer eMail mit Authenzierung
von Marko Rieger
Hinweis zum Tippvorschlag
Dieser Vorschlag wurde noch nicht auf Sinn und Inhalt überprüft und die Zip-Datei wurde noch nicht auf schädlichen Inhalt hin untersucht.
Bitte haben Sie ein wenig Geduld, bis die Freigabe erfolgt.
Über den Tipp
Dieser Tippvorschlag ist noch unbewertet.
Der Vorschlag ist in den folgenden Kategorien zu finden:
- Internet und Netzwerke
Dem Tippvorschlag wurden folgende Schlüsselwörter zugeordnet:
eMail, E-Mail, Versenden, Authentifizierung, SMTP
Der Vorschlag wurde erstellt am: 22.01.2008 20:26.
Die letzte Aktualisierung erfolgte am 24.02.2008 14:11.
Beschreibung
Dieser Tipp zeigt wie man eine E-Mail über SMTP mit Authentifizierung versenden kann.
Schwierigkeitsgrad |
Verwendete API-Aufrufe: |
Download: |
' Dieser Source stammt von http://www.activevb.de ' und kann frei verwendet werden. Für eventuelle Schäden ' wird nicht gehaftet. ' Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum. ' Ansonsten viel Spaß und Erfolg mit diesem Source! ' ' Beachten Sie, das vom Designer generierter Code hier ausgeblendet wird. ' In den Zip-Dateien ist er jedoch zu finden. ' --------- Anfang Projektgruppe eMail Versenden.sln --------- ' -------- Anfang Projektdatei eMail Versenden.vbproj -------- ' ---------------- Anfang Datei classEMail.vb ---------------- Imports System.Net Imports System.Net.Mail Imports System.Net.Mail.SmtpClient Public Class classEMail ' // EMail (from,to,body,cc) Private Message As MailMessage = New MailMessage() ' // Anlage Private Attach As Attachment ' // Authenticated Private SmtpUser As New NetworkCredential() ' // Versenden über SMTPClient Private Smtp As New SmtpClient() Public Sub New() End Sub ' // Absender Public Function Absender(ByVal Address As String, ByVal DisplayName As String) As String Message.From = New MailAddress(Address, DisplayName) Return Address & " (" & DisplayName & ")" End Function ' // Empfänger Public Function Empfänger(ByVal Address As String, ByVal DisplayName As String) As String Message.To.Add(New MailAddress(Address, DisplayName)) Return Address & " (" & DisplayName & ")" End Function ' // Weitere Empfänger Als Array ' Public Function WeitereEmpfänger(ByVal Addresses() As String) As String ' Dim Retval As String = "" ' For iIndex As Integer = 0 To Addresses.GetUpperBound(0) ' Message.CC.Add(Addresses(iIndex)) ' Retval &= Addresses(iIndex) & "; " ' Next ' If Retval.EndsWith("; ") Then ' Retval = Retval.Substring(0, Retval.Length - 2) ' End If ' Return Retval ' End Function ' // Weitere Empfänger Einzeln eingeben Public Function WeitereEmpfänger(ByVal Addresses As String) As String Dim sText As String = "" Message.CC.Add(Addresses) For iIndex As Integer = 0 To Message.CC.Count - 1 sText &= Message.CC(iIndex).Address & "; " Next If sText.EndsWith("; ") Then sText = sText.Substring(0, sText.Length - 2) End If Return sText End Function ' // Betreff & Nachricht Public Function Nachricht(ByVal Betreff As String, ByVal Text As String) As MailMessage Message.Subject = Betreff Message.Body = Text Return Message End Function ' // Einstellungen der Nachricht (Als HTML oder nicht & Priorität der Nachricht) Public Function Nachricht_Einstellungen(ByVal IsTextHTML As Boolean, ByVal Priorität As _ MailPriority) As MailMessage Message.IsBodyHtml = IsTextHTML Message.Priority = Priorität Return Message End Function ' // Anlage als Array ' Public Sub Anlage(ByVal Pfad() As String) ' For iIndex As Integer = 0 To Pfad.GetUpperBound(0) ' Attach = New System.Net.Mail.Attachment(Pfad(iIndex)) ' Message.Attachments.Add(Attach) ' Next ' End Sub ' // Anlage Einzeln Public Sub Anlage(ByVal Pfad As String) Attach = New System.Net.Mail.Attachment(Pfad) Message.Attachments.Add(Attach) End Sub ' // Getestet Public Function Senden_MitAuthenzierung(ByVal Kontoname As String, ByVal Password As _ String, ByVal SmtpAddress As String) As Boolean ' // Authenzierung SmtpUser.UserName = Kontoname SmtpUser.Password = Password ' -- Send Message Smtp.UseDefaultCredentials = False Smtp.Credentials = SmtpUser Smtp.Host = SmtpAddress Smtp.DeliveryMethod = SmtpDeliveryMethod.Network Try Smtp.Send(Message) Return True Catch ex As Exception MessageBox.Show(ex.Message, ex.Source) Return False End Try End Function End Class ' ----------------- Ende Datei classEMail.vb ----------------- ' ----------------- Anfang Datei frmMain.vb ----------------- Public Class frmMain Private eMail As New classEMail Private Addresses() As String Private iAddressIndex As Integer = 0 Private Sub btnSenden_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles btnSenden.Click With eMail .Absender(Me.txtAbsender.Text, Me.txtAbsender.Text) .Empfänger(Me.txtEmpfänger.Text, Me.txtEmpfänger.Text) .Nachricht(Me.txtBetreff.Text, Me.txtNachricht.Text) .Nachricht_Einstellungen(True, Net.Mail.MailPriority.Normal) If .Senden_MitAuthenzierung(Me.txtKontoname.Text, Me.txtPasswort.Text, _ Me.txtSMTP.Text) Then MessageBox.Show("eMail wurde erfolgreich versendet", "", _ MessageBoxButtons.OK, MessageBoxIcon.Information) End If End With End Sub Private Sub btnAbbrechen_Click(ByVal sender As System.Object, ByVal e As _ System.EventArgs) Handles btnAbbrechen.Click Me.Close() End Sub Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles btnAdd.Click Dim NewAddress As String = "" NewAddress = InputBox("eMail Adresse eingeben.", "Weitere eMail Adresse") If NewAddress <> "" Then Me.txtWeitereEmpfänger.Text = eMail.WeitereEmpfänger(NewAddress) End If End Sub Private Sub btnAnlage_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles btnAnlage.Click If Me.dlgOpenFile.ShowDialog = Windows.Forms.DialogResult.OK Then eMail.Anlage(Me.dlgOpenFile.FileName) Me.lstAnlage.Items.Add(Me.dlgOpenFile.FileName) End If End Sub End Class ' ------------------ Ende Datei frmMain.vb ------------------ ' --------- Ende Projektdatei eMail Versenden.vbproj --------- ' ---------- Ende Projektgruppe eMail Versenden.sln ----------
Diskussion
Diese Funktion ermöglicht es, Fragen, die die Veröffentlichung des Tipps betreffen, zu klären, oder Anregungen und Verbesserungsvorschläge einzubringen. Nach der Veröffentlichung des Tipps werden diese Beiträge nicht weiter verlinkt. Allgemeine Fragen zum Inhalt sollten daher hier nicht geklärt werden.
Folgende Diskussionen existieren bereits
Um eine Diskussion eröffnen zu können, müssen sie angemeldet sein.