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?
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 );
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());
}
}
}