{"id":55000111,"date":"2017-12-01T00:00:00","date_gmt":"2020-03-27T19:29:30","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=111"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"EMails_ohne_Outlook_versenden","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/EMails_ohne_Outlook_versenden\/","title":{"rendered":"E-Mails ohne Outlook versenden"},"content":{"rendered":"<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2017_06\/pic_111_001.png\" alt=\"Fenster zur Eingabe der Mail-Daten\" width=\"499,6607\" height=\"432,6107\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Fenster zur Eingabe der Mail-Daten<\/span><\/b><\/p>\n<p><b>Im Artikel &#8220;E-Mails mit Outlook verschicken&#8221; haben wir gezeigt, wie Sie von einer .NET-Anwendung aus die Daten f&uuml;r eine E-Mail zusammenstellen und diese dann per Outlook verschicken k&ouml;nnen. Was aber, wenn der Benutzer kein Outlook auf dem Rechner hat F&uuml;r diesen Fall bietet .NET eigene Bibliotheken. Damit k&ouml;nnen Sie E-Mails ohne Zugriff auf Outlook verschicken. Dieser Artikel zeigt, wie dies gelingt.<\/b><\/p>\n<p>Wir wollen in diesem Artikel das gleiche Fenster verwenden, mit dem wir auch in der Beispiell&ouml;sung zum Artikel <b>E-Mails mit Outlook verschicken <\/b>gearbeitet haben (siehe Bild 1). Einziger Unterschied: Die Schaltfl&auml;che <b>btnAnzeigen<\/b> fehlt, denn wir arbeiten ja nicht mit Outlook und k&ouml;nnen die Mail vor dem Versenden auch nicht mehr separat anzeigen. Daf&uuml;r haben wir eine Schaltfl&auml;che namens Konfiguration hinzugef&uuml;gt. Diese soll einen weiteren Dialog &ouml;ffnen, der die Konfigurationsdaten f&uuml;r den Mailserver speichert. <\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2017_06\/pic_111_001.png\" alt=\"Fenster zur Eingabe der Mail-Daten\" width=\"499,6607\" height=\"432,6107\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Fenster zur Eingabe der Mail-Daten<\/span><\/b><\/p>\n<p>F&uuml;r die Konfigurationsdaten legen wir einige Eintr&auml;ge im Bereich <b>Einstellungen<\/b> des aktuellen Projekts an, und zwar die folgenden (siehe Bild 2):<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2017_06\/pic_111_002.png\" alt=\"Anlegen der Konfigurationsdaten\" width=\"574,61\" height=\"365,2111\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Anlegen der Konfigurationsdaten<\/span><\/b><\/p>\n<ul>\n<li><b>Host<\/b>: Name\/IP des SMTP-Servers<\/li>\n<li><b>Port<\/b>: Port des SMTP-Servers<\/li>\n<li><b>Username<\/b>: Benutzername f&uuml;r die Anmeldung am SMTP-Server<\/li>\n<li><b>Password<\/b>: Kennwort f&uuml;r die Anmeldung am SMTP-Server<\/li>\n<\/ul>\n<p>Wenn Sie die Eigenschaften im Bereich <b>Einstellungen <\/b>angelegt haben und diese speichern, erstellt Visual Studio eine Klasse namens <b>MySettings<\/b>. Diese k&ouml;nnen Sie dann initialisieren und damit direkt die angelegten Eigenschaften ansprechen, also etwa <b>objSetting.Username<\/b> &#8211; mehr dazu weiter unten. Die Ereignismethode <b>Window_Load <\/b>f&uuml;llt die Felder <b>txtAbsender<\/b>, <b>txtAn<\/b>, <b>txtBetreff <\/b>und <b>txtInhalt <\/b>mit Beispieldaten. Dies war beim Testen des Beispiels hilfreich, Sie werden diese Felder jedoch auf andere Weise f&uuml;llen wollen &#8211; vorausgesetzt, Sie wollen &uuml;berhaupt Mails &uuml;ber ein Fenster versenden und nicht direkt etwa mit den Daten aus einer Datenbank.<\/p>\n<h2>Erstellen und Senden der E-Mail<\/h2>\n<p>Die durch die Schaltfl&auml;che <b>btnSenden<\/b> ausgel&ouml;ste Ereignismethode stellt die E-Mail zusammen und verschickt diese dann. Da wir hier nicht Outlook als Mail-Client verwenden, sondern die Klasse <b>MailMessage<\/b>, ben&ouml;tigen wir etwas mehr Code f&uuml;r die Durchf&uuml;hrung der Aufgabe. Das liegt vorrangig daran, dass wir die Daten des SMTP-Servers sowie die Benutzerdaten erst noch angeben m&uuml;ssen, die ja bei Benutzung von Outlook als Mail-Client bereits im jeweiligen Outlook-Konto gespeichert sind. Um die nachfolgend verwendeten Klassen nutzen zu k&ouml;nnen, ben&ouml;tigen wir noch Verweise auf die folgenden Namespaces:<\/p>\n<pre>Imports System.Net.Mail\r\nImports System.Net<\/pre>\n<p>Die Methode deklariert zun&auml;chst einige Variablen und initialisiert dann ein neues Objekt auf Basis der Klasse <b>MailMessage<\/b>:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>btnSenden_Click(sender<span style=\"color:blue;\"> As Object<\/span>, e<span style=\"color:blue;\"> As <\/span>RoutedEventArgs)\r\n     <span style=\"color:blue;\">Dim <\/span>objMail<span style=\"color:blue;\"> As <\/span>MailMessage\r\n     <span style=\"color:blue;\">Dim <\/span>objMailAddress<span style=\"color:blue;\"> As <\/span>MailAddress\r\n     <span style=\"color:blue;\">Dim <\/span>objAttachment<span style=\"color:blue;\"> As <\/span>Attachment\r\n     <span style=\"color:blue;\">Dim <\/span>objSMTPClient<span style=\"color:blue;\"> As <\/span>SmtpClient\r\n     <span style=\"color:blue;\">Dim <\/span>objNetworkCredentials<span style=\"color:blue;\"> As <\/span>NetworkCredential\r\n     <span style=\"color:blue;\">Dim <\/span>objSettings<span style=\"color:blue;\"> As <\/span>MySettings\r\n     objMail = <span style=\"color:blue;\">New<\/span> MailMessage<\/pre>\n<div class=\"rcp_restricted\"><p><span style=\"color: #ff0000;\">M&ouml;chten Sie weiterlesen? Dann l&ouml;sen Sie Ihr Ticket!<\/span><br \/>\n<span style=\"color: #ff0000;\">Hier geht es zur Bestellung des Jahresabonnements des Magazins <strong>Visual Basic Entwickler<\/strong>:<\/span><br \/>\n<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/shop.minhorst.com\/magazine\/363\/visual-basic-entwickler-jahresabonnement?c=77\">Zur Bestellung ...<\/a><\/span><br \/>\n<span style=\"color: #ff0000;\">Danach greifen Sie sofort auf <strong>alle rund 200 Artikel<\/strong> unseres Angebots zu - auch auf diesen hier!<\/span><br \/>\n<span style=\"color: #000000;\">Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:<\/span><\/p>\n<\/div>\n\n\t\n\t<form id=\"rcp_login_form\"  class=\"rcp_form\" method=\"POST\" action=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000111\/\">\n\n\t\t\n\t\t<fieldset class=\"rcp_login_data\">\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_login\">Username or Email<\/label>\n\t\t\t\t<input name=\"rcp_user_login\" id=\"rcp_user_login\" class=\"required\" type=\"text\"\/>\n\t\t\t<\/p>\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_pass\">Password<\/label>\n\t\t\t\t<input name=\"rcp_user_pass\" id=\"rcp_user_pass\" class=\"required\" type=\"password\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t\t<p>\n\t\t\t\t<input type=\"checkbox\" name=\"rcp_user_remember\" id=\"rcp_user_remember\" value=\"1\"\/>\n\t\t\t\t<label for=\"rcp_user_remember\">Remember me<\/label>\n\t\t\t<\/p>\n\t\t\t<p class=\"rcp_lost_password\"><a href=\"\/data\/wp\/v2\/posts\/55000111?rcp_action=lostpassword\"><\/a><\/p>\n\t\t\t<p>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_action\" value=\"login\"\/>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_redirect\" value=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000111\/\"\/>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"123b777de9\"\/>\n\t\t\t\t<input id=\"rcp_login_submit\" class=\"rcp-button\" type=\"submit\" value=\"Login\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t<\/fieldset>\n\n\t\t\n\t<\/form>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Im Artikel &#8220;E-Mails mit Outlook verschicken&#8221; haben wir gezeigt, wie Sie von einer .NET-Anwendung aus die Daten f&uuml;r eine E-Mail zusammenstellen und diese dann per Outlook verschicken k&ouml;nnen. Was aber, wenn der Benutzer kein Outlook auf dem Rechner hat F&uuml;r diesen Fall bietet .NET eigene Bibliotheken. Damit k&ouml;nnen Sie E-Mails ohne Zugriff auf Outlook verschicken. Dieser Artikel zeigt, wie dies gelingt.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662017,66062017,44000011,44000027,44000012],"tags":[],"yst_prominent_words":[],"class_list":["post-55000111","post","type-post","status-publish","format-standard","hentry","category-662017","category-66062017","category-CKlassen_und_Bibliotheken","category-Excel_programmieren","category-Interaktiv"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000111","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/comments?post=55000111"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000111\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000111"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000111"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000111"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000111"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}