Gewinde Geschrieben 3. Juni Geschrieben 3. Juni Hallo zusammen, ich weis, dass Internet ist voll mit diversen Vorschlägen zur Problemlösung. Zu meinem Bedauern führte bisher keiner der vorhandenen Vorschläge zur Lösung meines Problems. Kurz erklärt - Ich möchte mittels Outlook.Interop und C# automatisiert Emails erstellen, Anhänge einfügen und an verschiedene Emailadressen versenden. Als Frontend wird später WPF verwendet. Benutzt wird Microsoft® Outlook® für Microsoft 365 MSO (Version 2308 Build 16.0.16731.20542) 32 Bit. Wenn ich Outlook benutze, habe ich die Möglichkeit zwischen zwei verschiedenen Adressen zu wählen, meiner eigenen und der eines Verteilers. Bisher habe ich es geschafft auf meine eigene Adresse mittels C# Code zuzugreifen. Das absenden der Email selbst an einen Empfänger stellt selbst auch kein Problem mehr dar. So wie ich es verstanden habe, nutzt die Interoperabilität immer den Account aus Sicht des derzeitigen Anwenders. Wenn ich über Code alle Accounts in der derzeitigen Session abrufe, wird mir nur meine eigene Emailadresse angezeigt. Da ich aber über meinen Account mittels Outlook auch auf die Adresse des Verteilers zugreifen kann, müsste es doch möglich sein auch über Code darauf zugreifen zu können, um beim Versandt die Adresse des Verteilers zu nutzen. Theoretisch würde es schon reichen, wenn es eine Möglichkeit gäbe, die zu verwendende Adresse per string einzufügen, wobei mir ein direkter Zugriff natürlich besser gefallen würde. Hat jemand von euch Erfahrung im Umgang mit Outlook.Interop und könnte mir bei meinem Problem unter die Arme greifen? Grüße Gewinde 👋 Zitieren
Whiz-zarD Geschrieben 3. Juni Geschrieben 3. Juni Mit Outlook Interop hab ich zwar keine Erfahrung aber mit Excel Interop und glaube mir. Mit dem Interop willst du dich nicht rumschlagen müssen. Das ist ne Qual. Wenn's nicht läuft, lässt man dich komplett alleine und dann viel Spaß beim Debuggen und ich garantiere dir: Es wir nicht bei allen laufen. Als Alternative bietet .NET die SmtpClient-Klasse. Zitieren
Tratos Geschrieben 4. Juni Geschrieben 4. Juni Würde auch eher eine rein C# basierende Lösung wählen, schon alleine wenn Outlook was anpasst oder ändert und du im laufenden Betrieb da wieder was hinstricken musst. Da ist wie Whiz-zarD schon sagte die Smtp-Client Klasse oder ich glaube es gibt auch ein recht gutes Packet das fast alles abdeckt das du als Assembly einfügen kannst. Adressen könntest du dir ja wia Script sicherlich auch vom AD ziehen. Zitieren
Gewinde Geschrieben 5. Juni Autor Geschrieben 5. Juni Guten Morgen, ja das Interop nicht das Gelbe vom Ei ist musste ich auch schon feststellen. Wenn ich das richtig verstehe, wäre es eurer Meinung nach besser und auch einfacher, das Programm mit solidem C# code zu verfassen und die Erstellung und Verwaltung der Emails mittels der Mailitemklasse aus Net ( ohne Outlook Interop) dafür zu verwenden. Dann würde ich die Email Adressen mittels Variable integrieren. Ist das korrekt? Danke für eure Antworten Gewinde Zitieren
Whiz-zarD Geschrieben 5. Juni Geschrieben 5. Juni (bearbeitet) vor 6 Stunden schrieb Gewinde: Dann würde ich die Email Adressen mittels Variable integrieren. Ist das korrekt? Ich kenne das Tool nicht, was du baust aber ja, wenn sie automatisch ermittelt werden soll, dann müssen sie irgendwo hinterlegt sein. Sei es in der Datenbank, in einer Konfigurationsdatei im Active Directory oder sonst wo. Bearbeitet 5. Juni von Whiz-zarD Zitieren
Gewinde Geschrieben 29. Juni Autor Geschrieben 29. Juni Hallo, ich habe mir mal ein kleines Programm gebastelt um einfache Emails versenden zu können (einfach zum testen). Leider bekomme ich immer die Rückmeldung, dass der Server nicht gefunden werden kann. Wenn ich das richtig aufgefasst habe, scheitert diese Variante schlicht und ergreifend daran, dass ich keine daten für die Serverconnection habe und mit sehr großer Wahrscheinlichkeit auch nicht bekommen werde. Wir nutzen Outlook365 Exchange für den Emailversandt. Wenn ich von unserem Firmenserver (der ja irgendwo vorhanden sein müsste ) eine Email versenden möchte, müsste ich das Passwort u.s.w. kennen und irgendwo gesalzen und gepfeffert hinterlegen. Da mein Programm allerdings an der IT vorbei läuft (nicht illegal) und mir wahrscheinlich niemand einfach so das Passwort für einen Weltkonzern in die Hand drücken wird, werde ich mir wohl etwas anderes einfallen lassen müssen. Habt ihr sonst noch eine andere Idee für das versenden von Emails? Ansonsten müsste ich doch interop nutzen und es dabei belassen das jeder mit seiner eigenen Emailadresse seine Mails verschickt. Wäre halt nicht ganz das was wir uns vorgestellt hatten 😔. Zitieren
HJST1979 Geschrieben 3. Juli Geschrieben 3. Juli Hallo, als wenn ich mit einem C# - Tool Mails im Exchange-Umfeld versende / empfange nutze ich immer den Exchange-Web-Servcice (EWS). Bin damit bisher immer sehr gut gefahren. Was mir immer wichtig war, ich konnte ohne viel Aufwand die "gesendete" Mail auch in den entsprechenden Ordner kopieren. Somit hat man auch einen "Nachweis" der versandten Mails. Hier brauchst dann allerdings die EWS- Url Beispiel: https://owa.meineFirmenExchangeServer.de/EWS/Exchange.asmx Wenn du die hast benötigst du in der Regel "nur" noch den Benutzernamen / Domain und Kennwort. Zitieren
Mttkrb Geschrieben 22. Oktober Geschrieben 22. Oktober Wenn Exchange Online genutzt wird, würde ich im Hintergrund direkt auf die Graph-Api gehen. Damit hast du alle Möglichkeiten wie bei der EWS-Api und musst dich nicht mit der COM-Api rumschlagen. Doku hierzu: https://learn.microsoft.com/de-de/graph/api/user-sendmail?view=graph-rest-1.0&tabs=csharp Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.