2008-09-29 12 views
3

Je crée un nouvel élément de courrier électronique, dans C# VS-2008 outlook 2007, et j'attache un fichier. Le premier problème est que je ne vois pas de zone de pièce jointe sous la ligne d'objet montrant la pièce jointe. Si j'envoie l'e-mail, ses propriétés montrent qu'il y a une pièce jointe et la taille de l'e-mail a augmenté du montant de la pièce jointe. Je ne peux pas le voir ou extraire la pièce jointe.Outlook attachments.Add() n'apparaît pas dans le corps du message

Voici le code que je utilise:

Outlook.MailItem mailItem = (Outlook.MailItem)this.Application.CreateItem(Outlook.OlItemType.olMailItem); 
attachments.Add(ReleaseForm.ZipFile, Outlook.OlAttachmentType.olByValue, 0, "DisplayName"); 

J'attends la partie « DisplayName » montrerait que le nom de pièce jointe et je devrais utiliser le nom du fichier.

Je n'appelle pas .Send() sur le courrier électronique par programme, j'appelle mailItem.Display (true) pour afficher l'e-mail à l'utilisateur pour les modifications finales. À ce stade, je peux regarder les propriétés et voir qu'il y a un attachement là.

Si j'appuie sur envoyer (envoi à moi-même) je vois la même chose, la pièce jointe semble être là mais pas accessible.

Répondre

4

J'ai trouvé le problème. Je change le code pour utiliser les éléments suivants:

attachments.Add(ReleaseForm.ZipFile, Outlook.OlAttachmentType.olByValue, Type.Missing, Type.Missing); 

Il semble que la position et les paramètres DisplayName contrôlent ce qui se passe avec un OlByValue. En utilisant Type.Missing et maintenant je vois les pièces jointes correctement dans l'e-mail.

0

Je excactly problème que le vôtre, mais même je changer le code que le vôtre, mais il ne semble pas travaille toujours. encore une fois, il semble déjà dans les mailitems mais ne s'affiche pas sur l'affichage des articles de courrier. OK, vous devez vous assurer que le corps mailItem n'est pas nul pour diplay le attechament

0

Bit d'un ancien poste, mais comme d'autres ont mentionné, en utilisant

attachments.Add(path, Outlook.OlAttachmentType.olByValue, Type.Missing, Type.Missing); 

ne m'a pas aidé non plus, donc je pensé que je partagerais une approche alternative. La solution à ce problème a fini par appeler mailItem.Save(); juste avant d'appeler mailItem.Display(true);. Ce que cela va faire est d'actualiser le formulaire de perspectives pour montrer vos attachements. Il vaut également la peine de souligner qu'il sauvegardera le message dans les brouillons. Ce n'est pas un problème si vous attendez que l'utilisateur envoie l'e-mail, mais s'il annule, il restera dans son dossier Brouillons.