Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Onkel Domino am 17.05.06 - 10:50:33

Titel: Externe Einladungen per SMTP
Beitrag von: Onkel Domino am 17.05.06 - 10:50:33
Hallo,

ich möchte aus einer .NET Anwendung heraus eine Einladung an einen Notes Client schicken. Welche Felder, bzw. welches Format ist bei der eMail zu beachten, damit sie vom Notes Client als Einladung erkannt wird?
Titel: Re: Externe Einladungen per SMTP
Beitrag von: m3 am 17.05.06 - 10:57:13
Schick doch einfach ein iCal-Attachment. Felder gibt es bei SMTP-Mails nicht.

Oder meinst Du, dass Du aus der .NET Anwendung via COM/OLE Notes fernsteuern willst und im Notes die Einladung generieren willst?
Titel: Re: Externe Einladungen per SMTP
Beitrag von: Onkel Domino am 17.05.06 - 11:07:53
Wenn ich ein iCal-Attachment schicke, dann bekomme ich in Notes eine eMail mit Dateianhang *.ics. Öffne ich diesen, dann habe ich die Möglichkeit den Termin zu "importieren". Sobald ich auf importieren klicke, bekomme ich ein eMail mit der gewünschten Einladung. Das ganze ist mir aber zu umständlich.

Wenn ich eine Einladung mit dem Notes Client an eine fremde Domäne verschicke, dann erkennt das der entfernte Notes Client schließlich auch... Selbst wenn ich eine Einladung per Outlook an einen Notes Client verschicke wird die Einladung direkt im Posteingang als solche erkannt. Ein Umweg über diese ics-Datei ist dort auch nicht notwendig.

Any ideas?
Titel: Re: Externe Einladungen per SMTP
Beitrag von: voodoo am 17.05.06 - 11:21:15
Hallo,

Einladungen aus fremden Notes-Domänen funktionieren nur, solange die Einladugen nie das Notes-Mailsystem verlassen. Wenn da einmal ein SMTP-Server dazwischen liegt, geht die Information verloren.

Und von Outlook nach Notes funktioniert es nur, wenn man den Exchange Connector for Notes dazwischen schaltet.

Per SMTP geht die Information, d.h. die Felder, auf jeden Fall verloren.
Titel: Re: Externe Einladungen per SMTP
Beitrag von: Onkel Domino am 17.05.06 - 11:31:20
@vodoo:

Das ist nicht richtig. Ich sitze momentan in einer Umgebung, die eMails nicht direkt relayed, sondern über einen externen SMTP-Server verschickt. Einladungen die ich an eine meiner anderen Notes Accounts schicke werden auch als solche erkannt!

Sogar von diversen IMAP Konten, die ich mit Outlook verwalte, kann ich mir Einladungen an meine Notes Konten schicken die als Besprechung angezeigt werden.
Titel: Re: Externe Einladungen per SMTP
Beitrag von: Wilhelm am 17.05.06 - 11:31:54
Hi,

wie Martin schon geschrieben hat. COM stellt hier eine brauchbare Lösung dar.
Du kannst die Lotus.Domino classes einbinden und darüber erstellst Du ein
NotesDocument und versiehst es mit den entsprechenden Feldern. Du kannst die Einladung über COM auch verschicken.

Einziger Nachteil: Auf dem PC, auf dem das ausgeführt wird, muss ein Notes-Client installiert sein. Dieser braucht nicht geöffnet zu sein, aber druff sein muss er.

Gruß

Willi
Titel: Re: Externe Einladungen per SMTP
Beitrag von: Onkel Domino am 17.05.06 - 11:36:16
Sorry, das hatte ich auf Martin's Post hin vergessen zu erwähnen:

Die .NET Anwendung und der Notes Empfänger sind nicht identisch. Es handelt sich um zwei räumlich getrennte Umgebungen. Kein COM oder OLE! Alles nur per eMail!
Titel: Re: Externe Einladungen per SMTP
Beitrag von: m3 am 17.05.06 - 11:43:12
Wenn ich ein iCal-Attachment schicke, dann bekomme ich in Notes eine eMail mit Dateianhang *.ics. Öffne ich diesen, dann habe ich die Möglichkeit den Termin zu "importieren". Sobald ich auf importieren klicke, bekomme ich ein eMail mit der gewünschten Einladung. Das ganze ist mir aber zu Umständlich.
Das ist ein "Problem" von Notes. Beschwerden an salzamt@lotus.ibm.com

Zitat
Wenn ich eine Einladung mit dem Notes Client an eine fremde Domäne verschicke, dann erkennt das der entfernte Notes Client schließlich auch...
Siehe Voodoos Posting. Nur wenn kein SMTP-Server dazwischen liegt.

Zitat
Selbst wenn ich eine Einladung per Outlook an einen Notes Client verschicke wird die Einladung direkt im Posteingang als solche erkannt. Ein Umweg über diese ics-Datei ist dort auch nicht notwendig.

Dann solltest Du Dir mal ansehen, was Outlook da verschickt. Da kommt nämlich auch nix anderes als ein iCal-File, allerdings mit ein paar Headern:
Code
------_=_NextPart_001_01C49A2F.31C4552F
Content-class: urn:content-classes:calendarmessage
Content-Type: text/calendar;
	method=REQUEST;
	name="meeting.ics"
Content-Transfer-Encoding: 8bit

BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:Microsoft CDO for Microsoft Exchange
VERSION:2.0
BEGIN:VTIMEZONE
TZID:GMT -0000 (Standard) / GMT +0100 (Daylight)
BEGIN:STANDARD
.....


Wenn man Notes kommentarlos ein iCal Fiel schickt, wirds so mühsam, wie von Dir oben beschrieben. Die MIME-Eintrag "Content-Type" dürfte da den Unterschied machen. Schau Dir mal so ein Outlook-Mail genauer an.
Titel: Re: Externe Einladungen per SMTP
Beitrag von: Onkel Domino am 17.05.06 - 12:47:23
Dann solltest Du Dir mal ansehen, was Outlook da verschickt. Da kommt nämlich auch nix anderes als ein iCal-File, allerdings mit ein paar Headern:
Code
------_=_NextPart_001_01C49A2F.31C4552F
Content-class: urn:content-classes:calendarmessage
Content-Type: text/calendar;
	method=REQUEST;
	name="meeting.ics"
Content-Transfer-Encoding: 8bit

BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:Microsoft CDO for Microsoft Exchange
VERSION:2.0
BEGIN:VTIMEZONE
TZID:GMT -0000 (Standard) / GMT +0100 (Daylight)
BEGIN:STANDARD
.....


Wenn man Notes kommentarlos ein iCal Fiel schickt, wirds so mühsam, wie von Dir oben beschrieben. Die MIME-Eintrag "Content-Type" dürfte da den Unterschied machen. Schau Dir mal so ein Outlook-Mail genauer an.

Das wird der Springende Punkt sein...!

Allerdings bekomme ich den Header nicht richtig hin :-(

Folgender Code funktioniert in sofern nicht, dass ich wieder nur die eMail als Anhang bekomme und sie nicht als Einladung erkannt wird. Was mache ich falsch?

System.Web.Mail.MailMessage  MyMail = new System.Web.Mail.MailMessage();
               MyMail.From = from;
               MyMail.To   = to.Trim();
               MyMail.Subject = subject;
               MyMail.Body    = body;


MyMail.Headers.Add("Content-class", "urn:content-classes:calendarmessage");
               MyMail.Headers.Add("Content-Type", "text/calendar");
               MyMail.Headers.Add("method","REQUEST");
               MyMail.Headers.Add("name","attachment2");
               MyMail.Headers.Add("Content-Transfer-Encoding", "8bit");



               System.Web.Mail.MailAttachment MyAttachment2 = new System.Web.Mail.MailAttachment(attachment2);
               MyMail.Attachments.Add(MyAttachment2);


Titel: Re: Externe Einladungen per SMTP
Beitrag von: m3 am 17.05.06 - 13:58:22
je ne en comprends VB.NET aucun.

Das, was ich da oben gepostet habe, ist KEIN Mail-Header, sondern der Content-Type des Anhanges innerhalb einer MIME/Multipart E-Mail.

Ich würde auf die System.Net.Mail (http://msdn2.microsoft.com/en-us/library/system.net.mail.aspx) und die Attachment Class (http://msdn2.microsoft.com/en-us/library/system.net.mail.attachment.aspx) tippen. Dort kannst Du auch den Content Type (http://msdn2.microsoft.com/en-us/library/system.net.mail.attachmentbase.contenttype.aspx) setzen. Die MSDN Library ist Dein Freund.