2013-07-10 2 views
1

Я делаю плагин для Outlook 2010 с использованием VS2010 C#.Outlook VSTO C# Сделать сообщение для html url

Цель моего плагина заключается в том, чтобы захватить To, CC, BC с новой электронной почте, когда пользовательская кнопка нажимается с лентой и разместить его на внешний URL (который принимает запрос пост). Подобно тому, как формы в html/jsp могут отправлять входы на на другую страницу (url).

До сих пор я могу захватить To, CC, BC и сохранить его в строковой переменной. Но у меня нет знаю, как сделать сообщение на внешний url.

Любая помощь была бы принята с благодарностью. Благодарю.

Вот мой код для моей функции до сих пор:

public void makePost(object Item, ref bool Cancel) 
{ 
    Outlook.MailItem myItem = Item as Outlook.MailItem; 

    if (myItem != null) 
    { 
     string emailTo = myItem.To; 
     string emailCC = myItem.CC; 
     string emailBCC = myItem.BCC; 

     if (emailTo == null && emailCC == null && emailBCC == null) 
     { 
      MessageBox.Show("There are no recipients to check."); 
     } 
     else 
     { 
      string emailAdresses = string.Concat(emailTo, "; ", emailCC, "; ", emailBCC); 

      //do something here to post the string(emailAddresses) to some url. 
     } 
    } 
} 

ответ

2

Вы должны использовать WebRequest/HttpWebRequest класс, например:

HttpWebRequest request = HttpWebRequest.Create("http://google.com/postmesmth") as HttpWebRequest; 
request.Method = WebRequestMethods.Http.Post; 
request.Host = "google.com"; 
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0"; 
string data = "myData=" + HttpUtility.UrlEncode("Hello World!"); 


StreamWriter writer = new StreamWriter(request.GetRequestStream()); 
writer.Write(data); 
writer.Close(); 

HttpWebResponse response = request.GetResponse() as HttpWebResponse; 
+0

Спасибо большое! У меня появилась идея. Однако я столкнулся с одним вопросом. Я получаю сообщение об ошибке в строке 'string data = HttpUtility.UrlEncode (emailAdresses);' Он говорит, что HttPUtility не существует в текущем контексте. Я сделал много импорта, в том числе: using System.Net; используя System.Web; Еще не повезло. Спасибо – Polzi

+0

вам нужно добавить ссылку на System.Web.dll или использовать: Uri.EscapeUriString («Hello World!»); вместо – tinamou

+0

Спасибо. Работает Uri.EscapeUriString. Теперь я получаю ошибку исключения в строке: 'HttpWebResponse response = request.GetResponse() as HttpWebResponse;' Отладчик показывает, что ответ получает нулевое значение. Может быть, что-то связано с html-страницей, где я отправляю ее. Спасибо. – Polzi