2011-08-08 24 views
0
public void SendMail(string Subject, string Body, MailAddress To) 
    // מטודה מקבלת פרטי מייל בודד ושולחת אותו 
    { 
     var fromAddress = new MailAddress("[email protected]"); 
     var toAddress = To; 
     string fromPassword = "46798513"; 
     string subject = Subject; 
     string body = Body; 

     var smtp = new SmtpClient 
     { 
      Host = "smtp.gmail.com", 
      Port = 587, 
      EnableSsl = true, 
      DeliveryMethod = SmtpDeliveryMethod.Network, 
      UseDefaultCredentials = false, 
      Credentials = new NetworkCredential(fromAddress.Address, fromPassword) 
     }; 
     using (var message = new MailMessage(fromAddress, toAddress) 
     { 
      Subject = subject, 
      Body = body 
     }) 
     { 
      smtp.Send(message); 
     } 
    } 

我做的是真正得到從列表框中選擇幾英里,發送到這個函數中的所有郵件,函數到達發送SMTP的最後一行,然後返回錯誤!什麼可能是問題的功能?有一個建議如何寫下來,否則請我需要幫助!建設,通過Gmail的C#發送郵件的功能

+3

什麼是例外? –

+0

很多人沒有注意到.NET 4.0改變了SmtpClient,所以現在它和MailMessage都實現了IDisposable。兩者都應該使用塊。這可能不會導致異常,但是如果您使用.NET 4.0將會是一個很好的改變。 – hatchet

回答

2

以色列在調用Send的部分添加try/catch並查看拋出的異常,它會完全告訴你問題是什麼。

順便說一句,我希望這不是你的真實密碼或我要破解你的帳戶,然後接管世界。

+0

This Old password .. 您可以添加我以編碼行,我不知道確切地將它們放在哪裏 – Israel

+0

@Israel:此行:{ smtp.Send(message); } 更改爲:{ try {smtp.Send(message);} catch(Exception ex){Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace);} } 這會告訴你錯誤是什麼。不幸的是,我可以爲你測試這個,但有些事情告訴我你的問題可能與使用不正確的端口或錯誤的驗證方法有關。 – Icarus

+0

http://up352.siz.co.il/up3/mjjvzl5mnjbc.jpg – Israel

0

AFAIK Gmail的SMTP端口是465,至少這就是they說的。

0

嘗試不配置端口,只使用過去爲我工作的默認值(25我相信)。