ich erstelle per Microsoft.Office.Interop.Outlook E-Mails (soweit ja kein Problem...)
public void send()
{
try
{
if (System.Diagnostics.Process.GetProcessesByName("OUTLOOK").Count() > 0)
{
try
{
lo_OutApp = Marshal.GetActiveObject("Outlook.Application") as Outlook.Application;
}
catch (COMException ex) { Fehlermeldung.ErrorMessage(ex); }
}
else
{
try
{
lo_OutApp = new Microsoft.Office.Interop.Outlook.Application();
}
catch (COMException ex) { Fehlermeldung.ErrorMessage(ex); }
}
if (lo_OutApp != null)
{
lo_NSpace = lo_OutApp.GetNamespace("MAPI");
(usw)...
}
}
catch (Exception ex) {Fehlermeldung.ErrorMessage(ex); }
}
beim Massenversand habe ich nun feststellen müssen , das der Aufruf
lo_OutApp = new Microsoft.Office.Interop.Outlook.Application();
Also habe ich folgendes versucht, um das etwas zu beschleunigen ...
public class sendmail
{
#region Outlook
Microsoft.Office.Interop.Outlook.Application lo_OutApp = null;
Microsoft.Office.Interop.Outlook.NameSpace lo_NSpace = null;
Microsoft.Office.Interop.Outlook.MAPIFolder lo_Folder = null;
public Boolean Outlook_starten()
{
Boolean x_retwert = true;
if (System.Diagnostics.Process.GetProcessesByName("OUTLOOK").Count() > 0)
{
try
{
lo_OutApp = Marshal.GetActiveObject("Outlook.Application") as Outlook.Application;
}
catch (COMException ex) { x_retwert = false; }
}
else
{
try
{
lo_OutApp = new Microsoft.Office.Interop.Outlook.Application();
}
catch (COMException ex) { x_retwert = false; }
}
return x_retwert;
}
public void send()
{
if (lo_OutApp != null)
{
lo_NSpace = lo_OutApp.GetNamespace("MAPI");
(usw)...
}
}
}
public void xyz()
{
sendmail x_sendmail = new sendmail();
if (x_sendmail.Outlook_starten())
{
foreach()
{
...
x_sendmail.send();
...
}
}
}
Das funktioniert bei der ersten E-Mail einwandfrei, bei der zweiten knallt es dann beim Aufruf von
lo_NSpace = lo_OutApp.GetNamespace("MAPI");
mit folgender Fehlermeldung:
Fehler |
********** Fehlermeldung vom : 03.06.2021 10:22:20 ************************************************** Meldung: Der RPC-Server ist nicht verfügbar. (Ausnahme von HRESULT: 0x800706BA) bei Microsoft.Office.Interop.Outlook.ApplicationClass.GetNamespace(String Type) **************************************************************************************************** |
Google zählt verschieden Dinge auf, die aber irgendwie nichts mit Outlook zu tun haben...
geht so etwas nicht, oder was übersehe ich ?
Ich weiß, das ich das vermutlich auch mit EWS lösen könnte, aber da der Kunde wünscht, das (zu Kontollzwecken) die Mails nicht sofort raus gehen, muss die Möglichkeit des Offline-Betriebes möglich sein - u. da weiß ich nicht, ob das mit EWS möglich ist (wenn ich das richtig verstanden habe, dann übergeht EWS ja Outlook, richtig?)...
MfG Christian