2010-12-27 4 views
3

J'ai un scénario dans lequel l'utilisateur peut faire une sélection à partir d'une grille (ayant téléchargé des fichiers sur le dossier local) et lorsque l'utilisateur appuie sur "envoyer", l'application devrait ouvrir la fenêtre Outlook "New mail message" ayant les fichiers sélectionnés en pièces jointes (quel utilisateur sélectionné dans la grille).Comment ouvrir la fenêtre Outlook "Nouveau message" à partir de VB.NET

Toute aide sera appréciée.

Répondre

6

Si vous voulez voulez spécifiquement un message Outlook et que vous voulez plus d'options sur ce qu'il faut envoyer (corps du texte, les pièces jointes, BCC, etc.):

Dim Outl As Object 
Outl = CreateObject("Outlook.Application") 
If Outl IsNot Nothing Then 
    Dim omsg As Object 
    omsg = Outl.CreateItem(0) '=Outlook.OlItemType.olMailItem' 
    'set message properties here...' 
    omsg.Display(True) 'will display message to user 
End If 
+0

Cher MarcelDevG, Merci beaucoup, ceci exactement ce que je veux et son fonctionnement bien, à seulement chose anormale est maintenant que j'ai 2 fenêtres de message (ayant les mêmes paramètres, adresse, corps, message), aucune idée de ce qui se passe . MERCI ENCORE! –

+0

Je l'ai abordé en ne l'affichant pas comme Modal. 'omsg.Display (Faux) Merci encore! –

+0

Je suis un peu gourmand maintenant :) dans la nouvelle fenêtre de message électronique Je ne reçois pas la signature par défaut de l'utilisateur, comment ce problème va résoudre? –

11
Imports System.Diagnostics 

Process.Start(String.Format("mailto:{0}", address)) 

' set all possible parameters: ' 

Process.Start(String.Format("mailto:{0}?subject={1}&cc={2}&bcc={3}&body={4}", address, subject, cc, bcc, body)) 

' also escape spaces: ' 

Process.Start(String.Format("mailto:{0}?subject=\"{1}\"&cc={2}&bcc={3}&body=\"{4}\"", address, subject, cc, bcc, body)) 

Utilisez ensuite pour inclure de nouveaux sauts de ligne:

body = body.Replace(Environment.NewLine ,"%0A") 

ouvrira ses portes client de messagerie par défaut avec la nouvelle boîte de dialogue de composition de message.

Si Outlook est défini comme client par défaut, il sera ouvert.


Quoi qu'il en soit, jamais ouvert client explicitement non-défaut (email, navigateur, etc.) - qui casse les clients de la volonté et les rend détestez-vous.

+0

Et comment voulez-vous ajouter des pièces jointes? – MarcelDevG

+0

@MarcelDevG: Si vous avez besoin d'envoyer un e-mail avec des pièces jointes, envoyez un e-mail par programme: [SmtpClient.Send (MailMessage)] (http://msdn.microsoft.com/en-us/library/swas0fwc.aspx) – abatishchev

+0

Ne fonctionne pas si la chaîne est plus longue qu'environ 2000 caractères en raison d'une limitation d'Internet Explorer sur les longues URL. – nalply

4
Dim Outl As Object 
Outl = CreateObject("Outlook.Application") 
If Outl IsNot Nothing Then 
    Dim omsg As Object 
    omsg = Outl.CreateItem(0) 
    omsg.To = "[email protected]" 
    omsg.bcc = "[email protected]" 
    omsg.subject = "Hello" 
    omsg.body = "godmorning" 
    omsg.Attachments.Add("c:\HP\opcserver.txt") 
    'set message properties here...' 
    omsg.Display(True) 'will display message to user 
Questions connexes