Hey Leute, Ich will eine mail mit .net senden. Es das installierte Mail Programm aufploppen und der Text vorgegeben werden. !!!+ ein Anhang angefügt werden Ich hätte es mit process.start und mailto versucht. Dies geht aber nicht, da keine Anhänge unterstützt werden :-/ Mit dem mail spacename geht es auch nicht, da ich ja keinen eigenen Smtp Client bereitstellen will. Mapi ist leider auch mehr als überholt und macht immer wieder Probleme mit Fremdprogrammen (alles andere als Mircosoft). Was machen? Ideen?
MaWin schrieb: > Mapi ist leider auch mehr als überholt Ist es nicht. > und macht immer wieder Probleme > mit Fremdprogrammen (alles andere als Mircosoft). Tja, wenn diese Fremdprogramme keinen oder keinen vernünftigen Mapi-"Treiber" bereitstellen, sind Probleme damit natürlich vorprogrammiert. > Was machen? Ein Mailprogramm benutzen, was eben einen ordentlichen Mapi-Treiber mitliefert. Und das sind beileibe nicht nur welche aus dem Hause Microsoft.
Mapi kann aber nur 32bit! Müsste ich also einen Wrapper in C++ schreiben. Gibts da nichts managed?
MaWin schrieb: > Mapi kann aber nur 32bit! > Müsste ich also einen Wrapper in C++ schreiben. > Gibts da nichts managed? Warum machst du nicht aus deinem .net-Programm ein 32-Bit-Programm? Das ist viel einfacher. Man muss dem Compiler bloß sagen, dass man es beabsichtigt.
Kunde will 64bit. 32bit wird über kurz und lang aussterben. Also warum auf ein altes Pferd setzen? Ein C++ Wrapper ist ja auch nur ein Workaround.
c-hater schrieb: > MaWin schrieb: > >> Mapi kann aber nur 32bit! >> Müsste ich also einen Wrapper in C++ schreiben. >> Gibts da nichts managed? > > Warum machst du nicht aus deinem .net-Programm ein 32-Bit-Programm? Man muss also das ganze Programm in 32 Bit laufen lassen, mit den entsprechenden Einschränkungen, nur damit es einem anderen Programm sagen kann, dass es eine Mail verschicken soll?
Je nachdem was die konkrete Anfordwerung ist könnstest du auch eine Mail per IMAP in den Drafts Folder schieben
Ganz einfach. Hier ist ein Beispiel-Code https://www.vbarchiv.net/tipps/tipp_804-email-versenden-vbnet.html Und hier eine Alternative https://www.vb-paradise.de/index.php/Thread/6931-E-Mail-senden-per-SMTP-Simple-Mail-Transfer-Protocol/
Rolf M. schrieb: > Man muss also das ganze Programm in 32 Bit laufen lassen Muss man nicht, man kann halt auch einen Wrapper benutzen. Oder man kann für die Anwendung bei 64Bit bleiben und Mapi benutzen. Das gibt es nämlich auch in einer 64Bit-Version, was "MaWin"(wohl Fake) behauptet hat, stimmt schlicht nicht. Das erfordert aber dann auch, dass der gewünschte Mail-Client einen Mapi64-"Treiber" installiert. Outlook in der 64Bit-Version z.B. tut das.
Schlaumaier schrieb: > Ganz einfach. > Hier ist ein Beispiel-Code > https://www.vbarchiv.net/tipps/tipp_804-email-versenden-vbnet.html > Und hier eine Alternative > https://www.vb-paradise.de/index.php/Thread/6931-E-Mail-senden-per-SMTP-Simple-Mail-Transfer-Protocol/ MaWin schrieb: > Mit dem mail spacename geht es auch nicht, da ich ja keinen eigenen Smtp > Client bereitstellen will.
Bei VB (Egal ob Basic o. C++) kommt es immer drauf an, WELCHE Sachen (meist DLL) man dazu linkt. Also anmelden in der IDE und dann via #Include den Code mitteilen. Und dadurch entscheidet man, welches Mail-System man nimmt. z.b. das Eingebaute. Da aber nur wenige Leute Mails verschicken wollen, muss man halt das System einbinden. Selbst Datei-Operationen sind ohne der richtigen Include kaum möglich.
Schlaumaier schrieb: > Bei VB (Egal ob Basic o. C++) kommt es immer drauf an, WELCHE > Sachen (meist DLL) man dazu linkt. Also anmelden in der IDE und dann via > #Include den Code mitteilen. > Und dadurch entscheidet man, welches Mail-System man nimmt. > z.b. das Eingebaute. > Da aber nur wenige Leute Mails verschicken wollen, muss man halt das > System einbinden. Selbst Datei-Operationen sind ohne der richtigen > Include kaum möglich. Äääähm. Er schrieb: .net
https://docs.microsoft.com/en-us/previous-versions//dd296734(v=vs.85)?redirectedfrom=MSDN The use of Simple MAPI is discouraged. It may be altered or unavailable in subsequent versions of Windows
"The MAPI/CDO library has been replaced by Exchange Web Services (EWS), Exchange ActiveSync (EAS), and Representational State Transfer (REST)* APIs." https://docs.microsoft.com/en-us/exchange/new-features/discontinued-features?view=exchserver-2019
MaWin schrieb: > Äääähm. Er schrieb: .net Ist im denn Fall völlig egal. MS schiebt die Teile immer mehr zueinander. Ich habe in VB sehr oft Code-Fragmente aus .NET eingebaut, mit minimalsten Anpassungen wenn überhaupt.
MaWin schrieb: > Äääähm. Er schrieb: .net Äääääääääääähhhhm - .net funktioniert mit so ziemlich jeder gängigen Programmiersprache u.a. auch mit VB - siehe hier https://www.it-visions.de/dotnet/produkte/sprachen.aspx
(prx) A. K. schrieb: > "The MAPI/CDO library has been replaced by Exchange Web Services (EWS), > Exchange ActiveSync (EAS), and Representational State Transfer (REST)* > APIs." > > https://docs.microsoft.com/en-us/exchange/new-features/discontinued-features?view=exchserver-2019 Nunja, damit ist man dann allerdings praktisch endgültig auf MS-Clients festgelegt. Das mag und will Microsoft natürlich, geht aber so nicht durch. Wenn sie das konsequent durchziehen würden, bekämen sie massive Probleme mit den Kartellbehörden. Deswegen wird es das Mapi auch weiterhin geben. Sieha halt z.B. Mapi-Support von Outlook64.
c-hater schrieb: > Nunja, damit ist man dann allerdings praktisch endgültig auf MS-Clients > festgelegt. Im Gegenteil. Das fusst doch auf HTTPS, XML und SOAP. EAS (ActiveSync) macht seit langem jedes Handy, wenn am Ziel Exchange lauert, oder Kompatibles. Du bist halt beim Server festgelegt. Aber das ist hier Vorgabe, weil es kein SMTP sein soll.
:
Bearbeitet durch User
PS: .Net Code für ActiveSync fand ich mühelos im Web. https://github.com/alireza-es/ActiveSync
:
Bearbeitet durch User
(prx) A. K. schrieb: > EAS (ActiveSync) > macht seit langem jedes Handy, wenn am Ziel Exchange lauert Genau dann und nur dann... > Du bist halt beim Server festgelegt. Ja. Das Ziel des TO war doch aber, den jeweils vorhandenen lokalen Mail-Client zu benutzen und dem den Rest zu überlassen, oder? Und auch nur so kann es universell gehen. Bei uns in der Domäne z.B. (und das wird auf praktisch jede gut administrierte Firma zutreffen) ist es überhaupt nicht möglich, an der dafür vorgesehenen Infrastruktur vorbei irgendwelche Mails (über welches API auch immer) zu versenden. Wäre ja noch schöner.
c-hater schrieb: > Ja. Das Ziel des TO war doch aber, den jeweils vorhandenen lokalen > Mail-Client zu benutzen und dem den Rest zu überlassen, oder? Mir Anhang. Und das kriegt man mit MAPI?
:
Bearbeitet durch User
c-hater schrieb: > Wäre ja noch schöner. Ja, das ist aber eine andere Frage. Ich hab's in Jobs bisher mit BLAT gemacht. Aber das ist eben SMTP und muss dazu freigegeben sein.
(prx) A. K. schrieb: > Mir Anhang. Und das kriegt man mit MAPI? Mir->Mit. Tippfehler erkannt und Sinn der Frage verstanden. Antwort: Klar. Mapi hat das schon immer (? zumindest seit unzähligen Jahren) möglich gemacht. Und es funktioniert auch heute noch so wie immer. Und auch mit 64Bit-Binaries. Der Trick ist halt (wenig überraschend): der Mapi-Provider muss das implementieren, dann kann es der Mapi-Client auch benutzen. Praktisch jeder Anbieter kommerzieller Mail-Lösungen für Windows hat es schon vor Jahren geschafft, einen entsprechenden Mapi-"Treiber" für seine Lösung bereit zu stellen. Interessanterweise durchaus auch in Misch-Architektur. Die eigentliche Mail-Anwendung ist z.B. noch 32Bit, stellt aber trotzdem sowohl ein Mapi32 als auch ein Mapi64 zur Verfügung. Es geht also. Winzigweich selber schafft es allerdings nicht. Will es wohl garnicht schaffen, sondern Office 365 pushen. Mit all dem hochgradig unsicheren Gedöhns der "Web-Technologien". Bisher hat's zwar eher die "on premise"-Installationen von Exchange-Server hart erwischt, aber es ist vorhersehbar, das irgendwann auch Microsofts Tafelsilber in Gefahr ist. Reine Komplexitätsbetrachtungen lehren das.
c-hater schrieb: > (prx) A. K. schrieb: > >> Mir Anhang. Und das kriegt man mit MAPI? Vor 20 Jahren mit VB-6.0 hat das jedenfalls bei mir problemlos geklappt. Einzige Bedingung (wie hier oft erwähnt) man muss die MAPI-Schnittstelle aktivieren. Diese Schnittstelle legt gleichzeitig das Standard-Mapi-E-Mail-Programm fest. Einfach gesagt. Das letzte Programm auf den man die Mapi-Schnittstelle aktiviert hat, bekommt von deinen Prg. die Email-DATEN !!! Übermittelt INKL. "VERWEIS auf den Anhang". Verweis auf den Anhang bedeutet das der Anhang NICHT direkt übergeben wird, sondern als FILE. Das Email-Prg. hängt das File das mit den Pfadnamen !!! übergeben wurde dann an die Mail normal dran. Und DAS geht sogar bei Exchange. https://docs.microsoft.com/de-de/exchange/recipients-in-exchange-online/manage-user-mailboxes/enable-or-disable-mapi Zitat : "Sie können das Exchange Admin Center oder Exchange Online PowerShell verwenden, um die MAPI für ein Benutzerpostfach zu aktivieren oder zu deaktivieren. Wenn die MAPI aktiviert ist, kann Outlook oder anderen MAPI-E-Mail-Clients auf das Postfach eines Benutzers zugegriffen werden. "
(prx) A. K. schrieb: > Ja, das ist aber eine andere Frage. Ich hab's in Jobs bisher mit BLAT > gemacht. Aber das ist eben SMTP und muss dazu freigegeben sein. Corkscrew existiert, kann aber ein Grund für die fristlose Kündigung sein. ;-)
Nun, solche Tools werden's wohl sein muessen, wenn wir (Europa) naechstens eine kleine Demo/Willensbezeugung durchziehen wollen. Jeder schiebt mal 100 Mails gegen Osten ... pro Zeiteinheit.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.