2012-04-14 47 views
0

所以我想嘗試使用Visual C#應用程序發送自己的一些郵件,但它似乎只是通過代碼運行(我知道這是因爲我把代碼末尾的消息框)並且不發送任何內容。我確實更改了以下電子郵件信息,原因很明顯。試圖用C#發送郵件,但它似乎沒有工作

這是我有:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using System.Net.Mail; 
using System.Net; 

namespace WindowsFormsApplication9 
{ 
    public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 

    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     string Host = "smtp.live.com"; 
     Int16 Port = 587; 
     bool SSL = true; 
     string Username = "[email protected]"; 
     string Password = "mypassword"; 

     // Mail options 
     string To = "[email protected]"; 
     string From = "[email protected]"; 
     string Subject = "This is a test"; 
     string Body = "It works!"; 

     MailMessage mm = new MailMessage(From, To, Subject, Body); 
     SmtpClient sc = new SmtpClient(Host, Port); 
     NetworkCredential netCred = new NetworkCredential(Username, Password); 
     sc.EnableSsl = SSL; 
     sc.UseDefaultCredentials = false; 
     sc.Credentials = netCred; 

     MessageBox.Show("Test"); 
    } 
} 
} 

*注意,我從中得到任何錯誤。

+3

提示:您設置的所有信息(主機,從,到,主題,正文),設置憑據,以及所有看起來很好。你究竟在哪裏發送郵件? (另一個提示:在'sc.Credentials = netCred;'和'MessageBox.Show(「Test」);'之間應該有更多的瞭解) – 2012-04-14 02:33:43

+1

剛剛意識到我忘了實際發送消息。現在解決這個問題。 – Hexo 2012-04-14 02:37:28

+0

很好。你開始了嗎?現在我可以爲你回來的時候發表一個答案。 :) – 2012-04-14 02:47:19

回答

2

你實際上並沒有發送郵件。

添加到您的代碼 - 你應該能夠找出其中:

sc.Credentials = netCred; 

try 
{ 
    sc.Send(message); 
} 
catch (Exception ex) 
{ 
    MessageBox(ex.ToString());    
}    
MessageBox.Show("Test"); 
+0

+1,但要匹配OP的例子,它應該是'sc.Send(message);' – Robbie 2012-04-14 02:44:38

+0

好的結果。固定。 – 2012-04-14 02:45:58

+0

謝謝,非常感謝幫助(我得到它的工作,嗚呼。現在執行附件:D) 我不知道爲什麼我試圖stmpclient,但。 – Hexo 2012-04-14 03:00:35

-1

添加這些命名空間...

using System.Net.Mail; 
using System.Net; 
using System.Configuration; 

添加以下代碼行的代碼隱藏文件您想在哪裏發送電子郵件。

System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage("yourEmailId", "destinationEmailId"); 
mail.Subject = ""; //Enter the text for the subject of the mail in quotes. 
mail.Body = ""; //Enter the text for the body of mail within the quotes. 
mail.IsBodyHtml = true; 
SmtpClient client = new SmtpClient("smtp.live.com"); 
NetworkCredential cred = new NetworkCredential("yourEmailId", "yourPassword"); 
client.EnableSsl = true; 
client.Credentials = cred; 
try 
{ 
client.Send(mail); 
} 
catch (Exception) 
{ 
} 
+0

這不是很可讀 – Robbie 2012-04-14 02:43:35

+1

這裏有很多噪音是沒有必要的。除了一行代碼外,OP還提供了所有相關的信息(如果你省略'try..catch'),這很難閱讀,因爲額外的噪聲使得實際的解決方案很難找到。 – 2012-04-14 02:45:12