web-dev-qa-db-fra.com

Comment ouvrir la nouvelle fenêtre de messagerie Outlook c #

Je cherche un moyen de ouvrir une nouvelle messagerie dans la fenêtre Outlook.

J'ai besoin de renseigner par programme: de, à, sujet, corps informations, mais laissez cette nouvelle fenêtre de messagerie ouverte pour que l'utilisateur puisse vérifier le contenu/ajouter quelque chose, puis l'envoyer en tant que message Outlook normal.

Trouvé ça:

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

Mais il n'y a pas d'option "De" (mes utilisateurs ont plus d'une boîte aux lettres ...)

Des conseils?

33
Maciej

J'ai finalement résolu le problème. Voici un morceau de code résolvant mon problème (à l'aide d'interops Outlook)

Outlook.Application oApp    = new Outlook.Application ();
Outlook._MailItem oMailItem = (Outlook._MailItem)oApp.CreateItem ( Outlook.OlItemType.olMailItem );
oMailItem.To    = address;
// body, bcc etc...
oMailItem.Display ( true );
50
Maciej

Voici ce que j'ai essayé. Cela fonctionne comme prévu.

Cette application Ajout de destinataires, ajout de cc et ajout d'objet et ouverture d'une nouvelle fenêtre de messagerie.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Threading;
using Outlook = Microsoft.Office.Interop.Outlook;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void ButtonSendMail_Click(object sender, EventArgs e)
    {
        try
        {
            List<string> lstAllRecipients = new List<string>();
            //Below is hardcoded - can be replaced with db data
            lstAllRecipients.Add("[email protected]");
            lstAllRecipients.Add("[email protected]");

            Outlook.Application outlookApp = new Outlook.Application();
            Outlook._MailItem oMailItem = (Outlook._MailItem)outlookApp.CreateItem(Outlook.OlItemType.olMailItem);
            Outlook.Inspector oInspector = oMailItem.GetInspector;
           // Thread.Sleep(10000);

            // Recipient
            Outlook.Recipients oRecips = (Outlook.Recipients)oMailItem.Recipients;
            foreach (String recipient in lstAllRecipients)
            {
                Outlook.Recipient oRecip = (Outlook.Recipient)oRecips.Add(recipient);
                oRecip.Resolve();
            }

            //Add CC
            Outlook.Recipient oCCRecip = oRecips.Add("[email protected]");
            oCCRecip.Type = (int)Outlook.OlMailRecipientType.olCC;
            oCCRecip.Resolve();

            //Add Subject
            oMailItem.Subject = "Test Mail";

            // body, bcc etc...

            //Display the mailbox
            oMailItem.Display(true);
        }
        catch (Exception objEx)
        {
            Response.Write(objEx.ToString());
        }
    }
}
7
Chandan Kumar