2011-09-07 101 views
1

我正在使用以下非常簡單的代碼,並且我一直收到System.Net.Mail.SmtpException發送郵件失敗。這是我的代碼:嘗試以C發送郵件時發生SMTP異常

static void main(string[] args) 
{ 
    MailAddress from = new MailAddress("[email protected]", "Mr. Test"); 
    MailAddress to = new MailAddress("[email protected]", "mr. man"); 
    MailMessage msg = new MailMessage(from, to); 
    msg.Subject = "email"; 
    msg.Body = "This is email."; 
    SmtpClient client = new SmtpClient("smtp.gmail.com"); 

    client.Send(msg); 
} 

我從來沒有嘗試以編程方式發送電子郵件之前,所以我感謝幫助。

+1

你能得到一個完整的錯誤堆棧的消息嗎?嘗試exception.ToString() – bryanmac

+2

我會認爲這是因爲你沒有使用gmail進行身份驗證。 –

+0

@George:我如何使用Gmail進行身份驗證? – Daniel

回答

2

我看到不正確的代碼給出的第一件事是沒有用於驗證smtp服務器的用戶名/密碼。

此外,爲了更好地瞭解導致SmtpException的原因,請在調試器中捕獲異常並查看異常的詳細信息。通過這樣做,我已經很好地解釋了導致SMTP錯誤的原因。

您可以嘗試按照以下說明使用SMTP通過Gmail發送郵件。 http://blogs.msdn.com/b/mariya/archive/2006/06/15/633007.aspx

2

谷歌並不希望你使用端口25,他們希望你使用587(ssl)或467.他們還要求您在發送郵件時進行身份驗證。