簡體   English   中英

使用具有用戶名密碼身份驗證的smtp服務器發送電子郵件C#

[英]send email C# using smtp server with username password authentification

我有一段發送電子郵件的代碼。

這對我不起作用。 這是一個遠程smtp服務...,我再次檢查了電子郵件網絡訪問是否正常..我可以使用gui登錄,接收和發送電子郵件。

但是當我嘗試通過代碼來做..它失敗並顯示消息...

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

任何人都可以建議...而且他們也沒有公開EWS,即交換Web服務./ ..這是要走的路。

端口是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);
}

我不認為你要設定

mailclient.UseDefaultCredentials = true;

在此處閱讀有關此選項的更多信息。


您還應該測試您是否可以通過該SMTP服務器發送電子郵件。

嘗試通過telnet連接並進行授權。 還有許多服務可讓您在線發送測試消息(例如http://pingability.com/smtptest.jsp )。

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

您嘗試登錄而不先發送AUTH命令。 這就是為什么您的Web gui自動插入自己的AUTH命令的原因,但是您當前的客戶端應用程序未從您那里收到要中繼到服務器的命令,但是服務器需要進行身份驗證

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM