Comment ouvrir Outlook nouvelle fenêtre de messagerie c#

je suis à la recherche d'un moyen de ouvrir une nouvelle fenêtre mail dans Outlook.

j'ai besoin de programically remplir: à partir de, à, objet, corps information, mais laisser cette nouvelle fenêtre de messagerie ouverte pour que l'utilisateur puisse vérifier le contenu / ajouter quelque chose puis envoyer comme normal Outlook msg.

Trouvé:

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" From " (mes utilisateurs ont plus d'une boîte aux lettres)...)

un(des) conseil (s)?

31
demandé sur Ric .Net 2011-05-27 10:31:41

3 réponses

je'cve enfin résolu ce problème Voici un morceau de code qui résout mon problème (avec Outlook d'utilisation interops)

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 );
46
répondu Maciej 2011-05-29 05:32:55

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

cette application ajoute des destinataires, ajoute du cc et ajoute du sujet et ouvre une nouvelle fenêtre de courrier.

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("sanjeev.kumar@testmail.com");
            lstAllRecipients.Add("chandan.kumarpanda@testmail.com");

            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("THIYAGARAJAN.DURAIRAJAN@testmail.com");
            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());
        }
    }
}
6
répondu Chandan Kumar 2015-01-07 14:11:57

vous ne pouvez pas faire ça avec mailto. Soit votre client devra sélectionner le compte à partir duquel il envoie, par défaut vers son compte par défaut, soit vous devrez fournir un formulaire de courrier électronique et définir les en-têtes lorsque vous envoyez l'e-mail.

-1
répondu Ben 2011-05-27 06:50:33