2011-05-27 20 views
30

için bir yol arıyorum Outlook penceresinde yeni bir posta açın.Outlook yeni posta penceresi nasıl açılır C#

ihtiyacım programically doldurmak: için, konu, vücut bilgi, dan ama bu yeni posta penceresi sonra normal bir Outlook msj ile göndermek/öylesine kullanıcı içeriklerini kontrol edebilirsiniz açmak şey eklemek bırakın.

Bulunan bu:

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

Ancak hiçbir seçeneği "Kimden" (my kullanıcıların tek bir posta kutusundan daha var ...)

Herhangi bir tavsiye (ler) var mı?

+0

Görünümün kendisi içinde uygulamalar için vbscript kullanmadığınız bir neden var mı? Nihayetinde, isterseniz, C# 'dan outlook uygulamasını kolayca başlatabilirsiniz, bir vbscript makrosundan sizin için bunu dolduran başlangıçta çalışan bir bakış açısına sahip olmalısınız. Bir gui'de düzenlemeyi beklediğiniz gibi, sorum şu: C# spesifik bir çözüme mi ihtiyacınız var, yoksa sadece C# kullanmak zorunda olduğunuzu düşündüğünüz gibi mi soruyorsunuz? – tjborromeo

cevap

41

I'cve nihayet İşte bu sorunu çözüldü (kullanım Outlook interops ile) benim sorunu çözme kod parçası

İşte
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); 
+0

Bu kodu kullanarak bir Özel durum alıyorum. – papaiatis

+0

Teşekkürler, harika çalışıyor. – mack

+0

Outlook'um açılmadığında benzer bir şey çalıştırdığımda, Outlook açılır ve kalıcı e-posta iletişim kutusunu görüyorum, ancak Outlook, kullanıcı gönderim gönderdiğinde ve e-posta Giden Kutusu'nda kaldığında hemen kapanır. Bu problemi olan oldu mu? – user1198049

0

Bunu mailto ile yapamazsınız. Müşterileriniz, gönderdikleri hesabı seçtikleri, varsayılan hesaplarına varsayılan olarak seçecekleri veya e-postayı gönderdiğinizde posta formunu sağlamanız ve üstbilgileri ayarlamanız gerekecektir.

+0

Biliyorum bunu yapamıyorum - bu yüzden farklı bir seçenek arıyorum - bunu yönetmek için bazı uygulamalar gördüm yani bir şekilde olmalı ... – Maciej

4

i denedim budur olduğunu. Beklendiği gibi çalışıyor.

Bu uygulama Alıcı ekleme, cc ekleme ve konu ekleme ve yeni bir posta penceresi açma.

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

Kullanıcı outlook iptal düğmesini kullanarak iptal ederse, e-postayı nasıl iptal edersiniz? – singhswat

+0

Kod, yalnızca Kime: ve Konu alanları ile yeni bir e-posta penceresi oluşturur ve görüntüler. E-posta (veya değil) göndermek için kullanıcıya kalmış, böylece e-posta penceresi kapalıysa (gönderilmiyor), e-posta gönderilmeyecektir. –

İlgili konular