2017-10-18 17 views
0

J'ai un formulaire Outlook existant, qui a déjà une logique prédéfinie, des champs nommés et des listes déroulantes. Ce formulaire est l'entrée standard pour un appartement différent, donc je ne suis pas autorisé à changer le formulaire d'une manière qui pourrait briser leur traitement. Ce que je dois faire est de remplir dynamiquement certains champs du formulaire sur mon serveur où j'ai les informations disponibles, et de les fournir sous forme de fichier .msg à l'utilisateur final. L'utilisateur pourrait alors modifier certains des champs, à la fois ceux que j'ai pré-remplis et les autres.Préfixe de "formulaire Outlook" par programmation sur le serveur avant que l'utilisateur ne le télécharge

Ma question est, existe-t-il des API ou des balises "find & replace" que je pourrais utiliser pour préremplir les propriétés de la forme de perspective par programmation sur mon serveur? Si ça aide quelque chose, des valeurs. J'ai essayé une approche naïve pour mettre $ NAME $ dans la valeur de propriété et ensuite faire un simple remplacement de texte, mais Outlook n'a pas pu ouvrir le .msg après cela - je suppose qu'il y a des checksums ou des dépendances dans le interne structures de données.

Les plates-formes préférées sont .NET ou Java, mais d'autres options seraient également bien.

Répondre

1

Outlook Object Modle peut ouvrir le fichier MSG en utilisant Namespace.OpenSharedItem, mais OOM ne peut pas être utilisé à partir d'un service (tel que IIS).
Vous pouvez ouvrir et modifier le fichier MSG en utilisant MAPI étendu (C++ ou Delphi uniquement) en utilisant OpenIMsgOnIStg etc.
En cas de .Net ou Java, vous pouvez utiliser Redemption et son RDOSession. GetMessageFromMsgFile méthode (renvoie RDOMail objet). Vous pouvez modifier les propriétés en utilisant RDOMail.Fields[], puis enregistrez le fichier MSG en appelant le RDOMail.Save.
Vous pouvez consulter les propriétés MAPI existantes et leurs noms DASL dans OutlookSpy (cliquez sur le bouton OpenIMsgOnIStg).

+0

Merci, le modèle d'objet Outlook fonctionne. J'ai lu que l'automatisation de Outlook sur le serveur n'est pas officiellement supportée, mais y a-t-il quelque chose qui l'empêche activement? Il semble supérieur aux autres options, et est quelque chose qui fonctionne hors de la boîte sans achats supplémentaires. –

+0

Le serveur fonctionne correctement, c'est un service qui pose problème. Outlook va planter ou se bloquer. Pas une question de si, mais quand. –

+0

Cela ferait-il une différence si le serveur démarrait un outil cmd en tant que nouveau processus, et que l'interopérabilité du bureau réel est effectuée à partir de cet outil? J'ai testé cela et cela fonctionne de la même manière, et je suis en mesure de servir le fichier dans une seconde ou deux. Ce que je ne peux pas tester seul, ce sont les scénarios de crash, c'est pourquoi je demande ... –