程序是這樣的:
static void Main(string[] args)
{
SmtpClient client = new SmtpClient();
client.Host = "localhost";
MailAddress from = new MailAddress("from@test.com");
MailAddress to = new MailAddress("to@test.com");
MailMessage message = new MailMessage(from, to);
client.Send(message);
Console.ReadLine();
}
當運行時會報“由于目標計算機積極拒絕,無法連接。”的錯誤。查了一下據說是SMTP服務沒有啟動。于是在網上找到了設置的方法,控制面板-〉程序 和功能-〉打開或關閉Windows功能-〉Internet信息服務-〉應用程序開發功能-〉.NET擴展性,把這一項勾上。然后在IIS管理器中就會 出現SMTP電子郵件一項。試著在其中做相關的設定之后,結果還是同樣的錯誤。又研究了一下,原來Windows 7中的IIS7已經移除了SMTP服務,所以無論如何設置,都是徒勞無用的。(這里有相關的討論)
解決的辦法是安裝第三方的SMTP服務器。比如免費的Free SMTP Server。
裝完之后無需任何設置,啟動SMTP服務器,再運行上面的程序,一切正常。
如果想用網易等第三方SMTP服務器來發送郵件,也很簡單。代碼稍作修改:
static void Main(string[] args)
{
SmtpClient client = new SmtpClient();
client.Host = "smtp.163.com";
client.Credentials = new NetworkCredential("usenme", "password");//必須設置
MailAddress from = new MailAddress("from@163.com");
MailAddress to = new MailAddress("to@test.com");
MailMessage message = new MailMessage(from, to);
client.Send(message);
Console.ReadLine();
}
這次的嘗試花費了不少的時間,希望其它人看到這篇文章后能夠有所幫助。