Laden...

Postfach mit NetOffice abrufen

Erstellt von Momo592 vor 10 Jahren Letzter Beitrag vor 10 Jahren 4.496 Views
M
Momo592 Themenstarter:in
36 Beiträge seit 2014
vor 10 Jahren
Postfach mit NetOffice abrufen

Hallo,

Ich bin ein C#/.NET Neuling. Ich soll für meinen Chef eine Anwendung oder eine Office AddIn breitstellen, dass aus seinem Postfach E-Mail Anhänge von einem bestimmten Absender speichert. Daher bin ich auf NetOffice (http://netoffice.codeplex.com/) gestoßen. Ich gehe auch davon aus, dass es mit diesem Framework relativ simple sein wird. Aber ich bekomme die Integration schon nicht hin.

Kann mir jemand sagen, was für Verweise, Usings und Implementierungen ich brauche, um ein NetOffice.Outlook.Api.Outlook Object zu erstellen?

Ich bekomme immer folgende Fehlermeldung:> Fehlermeldung:

Der Interoptyp "NetOffice.OutlookApi.Application" kann nicht eingebettet werden. Verwenden Sie stattdessen die entsprechende Schnittstelle.

MfG
Momo

16.842 Beiträge seit 2008
vor 10 Jahren

Die Beispiele unter NetOffice - MS Office in .NET - Outlook_Examples_EN klappen bei Dir nicht?

1.029 Beiträge seit 2010
vor 10 Jahren

Hi,

jetzt hat NetOffice doch eine echt nette Doku... Warum liest du die nicht?

NetOffice - MS Office in .NET - Documentation

NetOffice - MS Office in .NET - Outlook_Examples_EN

Die beiden Links sollten dir behilflich sein.

LG

M
Momo592 Themenstarter:in
36 Beiträge seit 2014
vor 10 Jahren

Habe ich gelesen. Und ich meine Erkenntnis ist: Ich brauche einen Verweis auf die NetOffice.dll, OfficeApi.dll und OutlookApi.dll. Diese Verweise habe ich. Nun wollte ich mich an dem Expample01 für Outlook orientieren, da in diesem Beispiel schon die Mails als MailItem-Object vorliegen.
Ich habe also in meiner Anwendung eine neue Klasse erstellt und die gleichen Usings verwendet, wie es im Beispiel der Fall ist.
Dann habe ich den Quelltext aus der Methode buttonStartExample_Click([...]) kopiert und in meiner Klasse eingefügt. Das VS unterstreicht dann alle Objekte aus dem Namespace Outlook (NetOffice.OutlookApi) und gibt die oben angegebene Fehlermeldung aus.

Ich bin wie gesagt ein Neuling und habe bisher nur ein bisschen mit Java "gespielt". Habe diese Fehlermeldung auch bereits gegoogled, aber nichts gefunden, dass auf mein Problem passt oder was ich verstehe und auf mein Problem übertragen könnte. Bin jetzt schon seit zwei Tagen mit einem Kollegen, der seit Jahren in VS entwickelt am werkeln, aber er kennt auch keine Lösung. 🙁

1.029 Beiträge seit 2010
vor 10 Jahren

Hi,

poste mal den QuellCode. Im ersten Beispiel ist garkein Button 😕

LG

M
Momo592 Themenstarter:in
36 Beiträge seit 2014
vor 10 Jahren

Klar, es gibt doch den Button "Start Example".

Hier der Quellcode aus Beispiel1:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using ExampleBase;

using NetOffice;
using Outlook = NetOffice.OutlookApi;
using NetOffice.OutlookApi.Enums;

namespace OutlookExamplesCS4
{
    public partial class Example01 : UserControl , IExample 
    {
        IHost _hostApplication;

        public Example01()
        {
            InitializeComponent();
        }

        #region IExample Member

        public void RunExample()
        {
            // its an example with an own visual control
            // checkout buttonStartExample_Click
        }

        public string Caption
        {
            get { return _hostApplication.LCID == 1033 ? "Example01" : "Beispiel01"; }
        }

        public string Description
        {
            get { return _hostApplication.LCID == 1033 ? "Inbox Folder" : "Posteingang"; }
        }

        public void Connect(IHost hostApplication)
        {
            _hostApplication = hostApplication;
        }

        public UserControl Panel
        {
            get { return this; }
        }
        
        #endregion
        
        #region UI Trigger

        private void buttonStartExample_Click(object sender, EventArgs e)
        {
            // start outlook
            Outlook.Application outlookApplication = new Outlook.Application();

            // get inbox 
            Outlook._NameSpace outlookNS = outlookApplication.GetNamespace("MAPI");
            Outlook.MAPIFolder inboxFolder = outlookNS.GetDefaultFolder(OlDefaultFolders.olFolderInbox);

            // setup gui
            listViewInboxFolder.Items.Clear();
            labelItemsCount.Text = string.Format("You have {0} e-mails.", inboxFolder.Items.Count);

            // we fetch the inbox folder items.
            foreach (COMObject item in inboxFolder.Items)
            {
                // not every item in the inbox is a mail item
                Outlook.MailItem mailItem = item as Outlook.MailItem;
                if (null != mailItem)
                {
                    ListViewItem newItem = listViewInboxFolder.Items.Add(mailItem.SenderName);
                    newItem.SubItems.Add(mailItem.Subject);
                }
            }

            // close outlook and dispose
            outlookApplication.Quit();
            outlookApplication.Dispose();
        }
        
        #endregion
    }
}

Und hier der Quellcode, der bei mir nicht funktioniert:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;

using NetOffice;
using Outlook = NetOffice.OutlookApi;
using NetOffice.OutlookApi.Enums;

namespace PlayingVideosFromCamera
{
    public partial class OutlookFileSave
    {
        Outlook.Application outlookApplication = new Outlook.Application();
    }
}

A
31 Beiträge seit 2009
vor 10 Jahren

Hallo,

hast du dir mal die NetOffice Toolbox runtergeleaden?

Da ist ein Project-Wizard enthalten, der dir ein Grundgerüst für ein Applikation mit den richtigen Verweisen etc. auf Outlook erstellt.

Viele Grüße

M
Momo592 Themenstarter:in
36 Beiträge seit 2014
vor 10 Jahren

Das startet bei mir leider nicht.> Fehlermeldung:

Es wurde versucht, eine Assembly von einer Netzwerkadresse zu laden, was in früheren Versionen von .NET Framework zum Ausführen der Assembly als Sandkastenassembly geführt hätte. In dieser Version von .NET Framework wird die CAS-Richtlinie standardmäßig nicht aktiviert, dieser Ladevorgang kann daher gefährlich sein. Wenn Sie nicht beabsichtigen, durch diesen Ladevorgang eine Sandkastenassembly zu erstellen, aktivieren Sie den loadFromRemoteSources-Schalter.

Das Programm wurde beendet.

1.029 Beiträge seit 2010
vor 10 Jahren

Hi,

sry - mein erster Post war nicht hilfreich 😛

Geh mal unter die Verweise - wähle OutlookApi und deaktiviere "Interop-Typen einbetten" - das sollte helfen...

LG

M
Momo592 Themenstarter:in
36 Beiträge seit 2014
vor 10 Jahren

Das hilft, danke!
Habe in der Zwischenzeit auch schon das Tool zum laufen bekommen (in einer VM) und habe mir dort eine Projektmappe erstellen lassen.

Also vielen Dank für die Hilfe! 👍