2017-03-05 108 views
0

私のWebサイトから電子メールを送信しようとしています。"リモートサーバーに接続できません"エラー

これは私のコードです:

public string SendEmail() 
    { 
    string sMessage; 
    SmtpClient smtpClient = new SmtpClient("mail.test.com",25); 
    MailMessage message = new MailMessage(); 
    try 
     { 
     smtpClient.Credentials = new System.Net.NetworkCredential("web", "test1234", "myDomain"); 
     MailAddress fromAddress = new MailAddress("[email protected]", "web"); 

     message.From = fromAddress; 
     message.To.Add("[email protected]"); 
     message.Subject = "test"; 
     message.Body = "TEST"; 
     message.IsBodyHtml = true; 
     smtpClient.EnableSsl = false; 
     smtpClient.Send(message); 
     sMessage = "Email sent."; 
     } 
     catch (Exception ex) 
     { 
      sMessage = "Coudn't send the message!\n " + ex.Message; 
     } 
     return ""; 
    } 

しかし、私は次のエラーを取得しています:

"Unable to connect to the remote server"

データ(ホスト名、ポート、資格情報)が正しい、私はAでそれをチェックしますいくつかのSMTPチェッカー(例:this one)と正常に動作します。

私はオンラインを見つけたすべて試してみました:

smtpClient.UseDefaultCredentials = false; 
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; 

と異なるポートが、助けた何を、私はエラーを取得しておきます。

何か問題がありますか?何か不足していますか?

+0

ファイアウォールを確認しましたか? – Sybren

+0

@Sybrenはい、私はチェックしました、それはポート25のために開いています。 – user3378165

答えて

0

の代わりに:

smtpClient.Credentials = new System.Net.NetworkCredential("web", "test1234", "myDomain"); 

試してみてください。ここでは

smtpClient.Credentials = new System.Net.NetworkCredential("emailaddress", "password"); 

は、私は電子メールを送信するために使用するタスクの例です。

public Task SendEmail(string email, string subject, string body) 
{ 
try 
{ 
var mailClient = new SmtpClient 
{ 
Host = "mail.mydomain.com", 
Credentials = new NetworkCredential("[email protected]", "mypasword"), 
Port = myport, 
DeliveryMethod = SmtpDeliveryMethod.Network 
}; 

var msg = new MailMessage("from email", email, subject,body) {IsBodyHtml = true}; 
mailClient.Send(msg); 

return Task.FromResult(0); 
} 
catch (Exception ex) 
{ 
return null; 
} 
} 
0

私は同じ問題を抱えています。コンソールアプリケーションはシステムのプロキシを使用しますが、Webアプリケーションは使用しません。クライアントサービスオブジェクトのプロキシ属性の設定が欠落することがあります。私の問題はこの方法で解決されます。それが役に立つと願っています。

0

同様のパターンで、私のレストクライアントはサービスAPIを呼び出しています。サービスはデバッグ時に正常に呼び出されましたが、公開されたコードでは動作しません。 エラー:リモートサーバーに接続できません。

内部例外:System.Net.Sockets.SocketException(0x80004005が):System.Net.Sockets.Socket.DoConnect(エンドポイントendPointSnapshot、のSocketAddressで443 :ターゲットマシンが積極的にserviceIPそれを拒否したため、接続できませんでしたプロキシを設定します。System.Net.ServicePoint.ConnectSocketInternal(ブールconnectFailure、ソケットS4、S6ソケット、ソケット&ソケット、たIPAddress &アドレス、ConnectSocketState状態、たIAsyncResult asyncResult、例外&例外)

解像度でのSocketAddress) ウェブ設定で。

<system.net> 
    <defaultProxy useDefaultCredentials="true"> 
     <proxy proxyaddress="http://proxy_ip:portno/" usesystemdefault="True"/> 
    </defaultProxy> 
</system.net> 
関連する問題