it-swarm.com.de

So öffnen Sie Outlook neues Mail-Fenster c #

Ich suche nach einem Weg zu öffne eine neue Mail im Outlook-Fenster.

Ich muss programmgesteuert folgende Informationen eingeben: von, bis, Betreff, Text, aber dieses neue E-Mail-Fenster muss geöffnet bleiben, damit der Benutzer den Inhalt überprüfen/etwas hinzufügen und dann eine normale Outlook-Nachricht senden kann.

Festgestellt, dass:

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

Es gibt jedoch keine "Von" -Option (meine Benutzer haben mehr als ein Postfach ...)

Irgendwelche Ratschläge?

33
Maciej

Ich habe das Problem endlich gelöst. Hier ist ein Teil des Codes, der mein Problem löst (mithilfe von Outlook-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 );
50
Maciej

Hier ist was ich ausprobiert habe. Es funktioniert wie erwartet.

Diese Anwendung Hinzufügen von Empfängern, Hinzufügen von cc und Hinzufügen von Betreff und Öffnen eines neuen Mail-Fensters.

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