Как открыть новое почтовое окно Outlook С#
Я ищу способ открыть окно "Новая почта в Outlook".
Мне нужно программно заполнить: из, в, тему, тело, но оставьте это новое окно почты открытым, чтобы пользователь мог проверить содержимое/добавить что-то, а затем отправить как обычный Outlook msg.
Найдено, что:
Process.Start(String.Format(
"mailto:{0}?subject={1}&cc={2}&bcc={3}&body={4}",
address, subject, cc, bcc, body))
Но нет опции "От" (у моих пользователей более одного почтового ящика...)
Любые рекомендации (ы)?
Ответы
Ответ 1
Я наконец решил проблему. Вот фрагмент кода, решающий мою проблему (используя взаимодействия с 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 );
Ответ 2
Вот что я пробовал. Он работает как ожидалось.
Это приложение Добавление получателей, добавление cc и добавление темы и открытие нового почтового окна.
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());
}
}
}
Ответ 3
Вы не можете сделать это с помощью mailto. Либо вашему клиенту придется выбирать учетную запись, от которой они отправляются, и по умолчанию используется учетная запись по умолчанию, либо вам необходимо будет предоставить форму электронной почты и установить заголовки при отправке сообщения электронной почты.