cemetry
Goto Top

EWS 2.0 und VS2010 (Basic.net)

Hallo Kolleginnen und Kollegen,


bräuchte leider etwas Hilfe...

Setze VS2010 Express für Visual Basic .Net ein. Da wir hier in der Firma einen Exchange 2010 einsetzen, würde ich gerne bestimmte Dinge weiter automatisieren. Dazu müsste ich jedoch Mails versenden. Leider bekomme ich jedeoch bei der Erstellung des Verweises auf die Exchange Web Services (Version 2.0) in der Projektmappe folgende Fehler:


Die Assembly "Microsoft.Exchange.WebServices.Auth", auf die verwiesen wird, konnte nicht aufgelöst werden, da sie eine Abhängigkeit von "System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" aufweist (nicht im aktuellen Zielframework ".NETFramework,Version=v4.0,Profile=Client" enthalten).

Die Assembly "Microsoft.Exchange.WebServices", auf die verwiesen wird, konnte nicht aufgelöst werden, da sie eine Abhängigkeit von "System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" aufweist (nicht im aktuellen Zielframework ".NETFramework,Version=v4.0,Profile=Client" enthalten).


Die Assembly System.Web.Extensions existiert bei mir defakto nicht. Nur in dem Ordner für .net 3.5 und .net 3.0. System.Web existiert allerdings von vornherein.

Gibts da schon was aktuelleres, bin nämlich nicht fündig geworden... Oder sonst irgendwelche Möglichkeiten?


Besten Dank
cemetry

Content-ID: 209042

Url: https://administrator.de/contentid/209042

Ausgedruckt am: 08.11.2024 um 20:11 Uhr

colinardo
colinardo 04.07.2013 aktualisiert um 13:25:16 Uhr
Goto Top
Hallo cemetry,
also dein primäres Ziel ist es eine Mail zu verschicken, wenn ich das richtig verstanden habe. Dann mach das ganze doch mit dem SMTP-Client:
back-to-topFunction zum Senden einer E-Mail
Imports System.Net.Mail
 Public Function MailMessageAuth(ByVal _from As String, ByVal _to As String, ByVal _username As String, ByVal _password As String, ByVal _smtpserver As String, Optional ByVal _subject As String = "", Optional ByVal _body As String = "") As String  
        Dim client As New SmtpClient(_smtpserver)
        Dim mail_regex As New Regex("^[^\*\?]+@[^\*\?]+\.[a-z]{2,4}$", RegexOptions.IgnoreCase)  
        If Not mail_regex.Match(_from).Success Or Not mail_regex.Match(_to).Success Then
            Return "Error - Angegebene E-Mail-Adressen haben nicht das korrekte Format"  
        End If

        Dim m As New MailMessage(_from, _to, _subject, _body)
        Dim smtpUser As New System.Net.NetworkCredential(_username, _password)
        With client
            .UseDefaultCredentials = False
            .Credentials = smtpUser
            Try
                .Send(m)
            Catch ex As SmtpException
                MsgBox(ex.Message)
                Return "Error - " & ex.Message  
            End Try
        End With
        Return ""  
        '-------- Returns empty String if Mail was send successfully  
        '-------- Returns "Error - " + Description of Exception in case of error  
    End Function
das Senden einer Mail wird dann so initiert:
back-to-topVerwendung
MailMessageAuth("FROM", "TO", "USERNAME", "PASSWORD", "SMTP-SERVER", "SUBJECT", "BODY")  

Grüße Uwe
gelöste Beitrage bitte auch als solche markieren.Danke
cemetry
cemetry 04.07.2013 um 21:06:55 Uhr
Goto Top
Vielen Dank Uwe,

Hab mich jetzt noch einmal mit unserem Exchange-Admin auseinandergesetzt, weil Mailen via SMTP überhaupt nicht funktioniert hat (Deswegen EWS). Mein Kollege hat mir daraufhin erklärt, dass er aus Sicherheitsgründen nur die tatsächlich benötigten IP-Adressen im LAN für SMTP freigibt und der Exchange in Wirklichkeit nur ein Relayserver ist.

Jetzt funktioniert die Sache auch, sauber über SMTP ohne EWS.

Übrigens, schöner Code!

cemetry