.NET中如何用Outlook自動發送郵件(C#)

來源:互聯網
上載者:User
-

工作中遇到一個需求,需要使用Outlook自動發送郵件。別誤會,我沒打算做駭客行為,就是想用Outlook發送使用者反饋給我們。就是,使用者在文字框裡面輸入他們的意見,按發送按鈕,意見就自動以email的形勢發送給開發人員,還不能讓使用者知道我們盜用了他們的郵箱(雖然不是駭客,行為也夠黑的...)

 

看中Outlook的原因有二

1,由於公司的政策,Outlook人人必用(相信很多IT,非IT公司都是這樣)

2,即使離線狀態也不會報錯,等聯機的時候一樣會把郵件發出。勤勞的Outlook功能啊。

 

.net framework中有類比outlook來串連smtp伺服器發送郵件的類,我們這篇文章主要不是說這個,但是貼一段網上找來的這一種方法的範例程式碼,防止有人被標題騙進來罵本人標題黨。

 

Code
  MailMessage   mail   =   new   MailMessage();   
  mail.From   =   "JobAlarm";   
  mail.Subject   =   "Job   Alarm";   
  mail.Priority   =   MailPriority.High;   
  mail.BodyEncoding   =   Encoding.GetEncoding("BIG5");   
  mail.BodyFormat   =   MailFormat.Text;   
  mail.To   =   "Receive   Body   's   Mail   Address";   
  mail.Body   =   "The   mail's   Content";   
  SmtpMail.SmtpServer   =   "Smtp   Server   Address";   
  SmtpMail.Send(mail);   
    

 

下面說正題,話說,小妹在各位神通廣大的博主和同行的啟發下,想出來兩個方法,可惜都不太盡如人意,最後只好放棄了用E-mail發送使用者反饋的打算,(啊……已經感覺到爛番茄在向我飛來了……)不過還是把這兩個方法寫下來,希望給大家一點啟發。

 

方法一:直接調用Process.Start()方法。

Code
Process.Start(new ProcessStartInfo("mailto:user@126.com?subject=test&body=Dear:%0A%0DThis is a test mail."));

這個方法會出現一個寫郵件的框,當然標題和內容都已經自動填好了。

 

接下來,我想出一個損招——使用Windows API的GetWindow()方法擷取該郵件視窗的控制代碼,再找到發送按鈕,直接點擊。

當然,實際上也不是我想出來的,自然是有別人想出來的,不過此招太損,棄之。如果有朋友對此招有興趣,可以試試。

關於Windows API的範例程式碼,大家可以參考這個文章:

http://topic.csdn.net/t/20040711/10/3163913.html

可不要用這個方法編寫病毒哦^0^

 

方法二:正規途徑,但是也是走不通的途徑,調用.NET Outlook API發送。

下面是步驟:1,添加引用Microsoft.Office.Interop.Outlook;

這個必須在Reference上面點右鍵,選添加才行,直接using會說找不到。

2,代碼如下: 

Code
            Microsoft.Office.Interop.Outlook.Application outlookObj = new Microsoft.Office.Interop.Outlook.Application();
            MailItem Item = (Microsoft.Office.Interop.Outlook.MailItem)
      outlookObj.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);

            Item.To = "user@126.com";

            Item.Subject = "hello";

            Item.Body = "hello";

            Item.Send();

 

 但是,惱人的是,用這個方法發送的話,Outlook會產生一個對話方塊,提醒使用者有未知的應用程式正在冒充她的名義發送郵件。

大家可以去試試。如果找到迴避這個警告框的方法,請告訴我,謝謝!

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.