2016-07-11 12 views
1

Ich habe eine .xls-Datei mit einer großen Anzahl von E-Mails, die ich über Matlab zum Outlook hinzufügen möchte. Die Verarbeitung der .xls-Datei ist kein Problem.Verwenden von Matlab zum Hinzufügen von Kontakten zu Outlook

Ich fand es möglich, E-Mails über Matlab mit h = actxserver('outlook.Application' zu senden, und ich dachte, ich könnte dies für meinen Zweck verwenden. Ich bin jedoch völlig unbekannt mit der ActiveX/COM-Schnittstelle und wie man sie benutzt.

Ich versuchte zu verwenden (h), aber das gab mir keine nützlichen Informationen.

Zwei Fragen. Konkret 1) Wie kann ich Matlab verwenden, um Kontakte hinzuzufügen?

Und zweitens, allgemeiner, wie könnte ich herausfinden, was ich in diesem Fall mit 'h' tun kann? Ich sehe Menschen mit h.Subject oder h.To Wie würde ich in der Lage sein, die möglichen Dinge (wie Betreff oder zu) ich kann mit h?

+2

dies eine der seltsamsten Fragen zu sein, hat bekam ich je gesehen habe. Wenn Sie eine .xls-Datei mit E-Mails haben, warum verwenden Sie nicht einfach Outlook, was bietet Matlab oder andere nicht? – GameOfThrows

+0

Richtig, gute Frage. Die .xls-Datei stammt direkt aus dem Personalwesen und benötigt viel Verarbeitung, bevor sie verwendet werden kann.Speziell stelle ich diese Frage, weil ich lernen möchte, wie man das über Matlab macht. –

Antwort

1

Um einen Kontakt Sie eine ContactItem object durch das ActiveX-Steuerelement erstellen müssen hinzuzufügen.

Für die allgemeine Frage, es dauert nur einige Stossen in Outlook's Object Model Reference um

+0

Das hat mir schon sehr geholfen. Wäre es möglich, die Adressgruppe festzulegen, auf die sie zugreifen soll? Ich bin automatisch in zwei E-Mail-Konten in Outlook angemeldet. Ich benötige, dass die Kontakte zu einem bestimmten E-Mail-Konto und vorzugsweise zu einer bestimmten Kontaktgruppe hinzugefügt werden. –

+0

Ich bin mir nicht sicher, sorry. Sie können eine neue Kontaktgruppe mit 'h.CreateItem ('olDistributionListItem') erstellen;' aber ich kann nicht herausfinden, wie Sie Kontakte hinzufügen können, ohne dass MATLAB eine sehr unwichtige Nachricht ausgibt. – excaza

1

Ich würde immer noch vorschlagen, Outlook für das Senden der E-Mails verwenden, so dass Sie alle aktuellen Funktionalitäten haben, und MS aktualisiert Office 365 ständig und es wäre nicht das erste Mal, wenn eine MS-Schnittstelle von Microsoft geschraubt wurde aktualisieren.

In jedem Fall haben Sie recht, es gibt eine aktive X-Schnittstelle, die verwendet werden kann, bevor Sie es verwenden, müssen Sie Matlab mit Administratorrechten ausführen (wenn Sie Windows sind) und stellen Sie sicher, dass Sie ein Matlab haben Version> 2010 rb (die Version, die ich gerade teste).

Wenn Sie h = actxserver ('outlook.Application') verwenden, erstellt all dies einen OLE-Server mit der angegebenen Anwendungs-ID, so dass get() Ihnen nichts anderes als Versionsnummer und Server-ID usw. abholt. Doch es sollte Ihnen ermöglichen, auf Funktionen zu diesem Server gehören, zu nennen (dh die Funktionalität von Outlook.Application, so in der Regel eine E-Mail zu senden an:

mail = h.CreateItem('olMail'); 
mail.Subject = subject; 
mail.To = to; 
mail.BodyFormat = 'olFormatHTML'; 
mail.HTMLBody = body; 
% Add attachments, if specified. 
if nargin == 4 
    for i = 1:length(attachments) 
     mail.attachments.Add(attachments{i}); 
    end 
end 
% Send message and release object. 
mail.Send; 
h.release; 

Notieren Sie sich den obigen Code aus gemacht, ich habe schreibe sie nicht und würde es wahrscheinlich nie versuchen ... aber es wurde getestet, um an meiner lokalen Station zu arbeiten.

Answ Wenn Sie Ihre zweite Frage haben, welche Funktionen Sie aufrufen können, hängt davon ab, welche Funktionen in Outlook.Application verfügbar sind. Diese Funktion steht unter microsoft application dev zur Verfügung. Dies sind alle Funktionen, die Sie vom Objekt aus aufrufen können.

Außerdem werden alle Parameter als STRINGS an das Objekt über das OLE übergeben, daher gibt es hier keine Matlab-Funktionalität und Sie können keine der Matlab-Funktionen in Aufrufen mit dem Objekt verwenden, wenn Sie etwas cleveres tun möchten - Sie müssen die VB-Sprache als Zeichenfolgen an das Objekt übergeben.

h = actxserver('outlook.Application'); 

newContact = h.CreateItem('olContactItem'); 
newContact.FirstName = 'John'; 
newContact.LastName = 'Smith'; 
newContact.Email1Address = '[email protected]'; 
newContact.Save(); 

% newContact.Display; % To check your work 
h.release; % Close the ActiveX interface 

die ContactItem properties page für eine Liste von anderen Feldern finden Sie ändern können: