2010-04-28 81 views
2

發送電子郵件C#我有一段代碼發送電子郵件..繼承人這不是爲我工作的代碼使用SMTP服務器的用戶名密碼驗證

。這是一個遠程smtp服務...我仔細檢查,電子郵件web訪問工作正常..我可以使用gui登錄,接收和發送電子郵件。

但是當我試圖通過代碼來做到這一點..它失敗的消息...

{System.Net.Mail.SmtpException:SMTP服務器要求安全連接或客戶端未認證。服務器響應是:5.7.0沒有給出AUTH命令。

任何人可以提出建議......還他們沒有EWS暴露ie.e交換網絡服務./ ..這是要走的路..

端口爲25,無SSL或TLS

Button b = sender as Button; 
try 
{ 
    MailMessage msg = new MailMessage(senderEmail, recieverEmail, "afdasfas", "safasfa"); 
    //MailMessage msg = new MailMessage(senderEmail, recieverEmail, subject, subject); 
    System.Net.Mail.SmtpClient mailclient = new System.Net.Mail.SmtpClient(EmailSmtpServer, outgoingPort); 
    System.Net.NetworkCredential auth = new System.Net.NetworkCredential(senderEmail, senderPassword); 
    mailclient.Host = EmailSmtpServer; 
    mailclient.UseDefaultCredentials = false; 
    mailclient.Credentials = auth; 
    mailclient.Send(msg); 
    MessageBox.Show(b.Content + ":WORKED"); 
} 
catch (Exception e4) 
{ 
    MessageBox.Show(b.Content + ": " +e4.Message); 
    MessageBox.Show(b.Content + ": " + e4.StackTrace); 
} 
+0

你可以把你的代碼放在代碼塊嗎?使其更易於閱讀。 – jaltiere 2010-04-28 17:33:54

回答

4

我不認爲你想設置

mailclient.UseDefaultCredentials = true; 

瞭解更多關於此選項here


您還應該測試,你實際上可以通過SMTP服務器發送電子郵件。

嘗試通過telnet和授權進行連接。還有大量的服務可以讓你在線發送測試消息(例如http://pingability.com/smtptest.jsp)。

+0

沒有。我很抱歉,全髖關節置換一個錯字..我是想所有的選擇.. 我將編輯後... 我得到這個例外,當我試圖運行的代碼 {System.Net.Mail。 SmtpException:SMTP服務器需要安全連接或客戶端未通過身份驗證。服務器響應是:5.7.0沒有給出AUTH命令。 在System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode,字符串響應) – pskk 2010-04-28 18:26:59

+0

@KK,請參閱我的編輯。 – Joel 2010-04-28 21:22:55

+0

我可以遠程登錄到遠程smtp服務...當我使用auth登錄,然後以base64格式提供用戶名和密碼時,我可以登錄...所以我想用C#代碼的問題...和sendMail不發送「身份驗證登錄」命令或不發送用戶名/密碼在base64 ...你認爲你可以指向我的博客/網站有這個糾正...我試了一堆,它不適合我...謝謝。 – pskk 2010-04-29 12:27:18

0

也許你需要添加mailclient.EnableSsl = true;

+0

沒有..我很抱歉thas一個錯字..我正在嘗試所有選項.. 我將編輯帖子... 我得到這個異常,當我嘗試運行代碼 {System.Net.Mail.SmtpException:SMTP服務器需要安全連接或客戶端未驗證。服務器響應是:5.7.0沒有給出AUTH命令。 在System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode,字符串響應) – pskk 2010-04-28 18:27:48

+0

遠程smtp服務不需要smtp啓用 – pskk 2010-04-28 18:29:17

+0

我可以遠程登錄到該遠程smtp服務...當我使用auth登錄,然後提供用戶名和base64格式的密碼,我可以登錄...所以我想用C#代碼的問題...和sendMail不發送「auth登錄」命令或不發送用戶名/密碼在base64中...你認爲你可以指向我的博客/網站有這個更正...我試了一堆,它沒有爲我工作...謝謝你。 – pskk 2010-04-29 12:27:39

1

System.Net.Mail.SmtpException:SMTP服務器要求安全連接或客戶端未通過身份驗證。服務器響應是:5.7.0沒有給出AUTH命令。

您正在嘗試登錄而不先發送AUTH命令。這就是爲什麼您的web gui會自動插入它自己的AUTH命令,但您當前的客戶端應用程序沒有收到來自您的命令以中繼到服務器,但服務器要求身份驗證