2011-12-19 14 views
2

このコードはローカルで動作しますが、Godaddyのサーバーにアップロードすると、電子メールは送信されません。なぜそれが彼らのサーバで動作しないのか?私は何を変更する必要がありますか?メールはローカルで送信しますが、サーバーでは送信しませんか?

try { 
    MailMessage mail = new MailMessage(); 
    SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com"); 

    mail.From = new MailAddress("[email protected]"); 
    mail.To.Add("[email protected]"); 
    mail.Subject = "New sign up"; 
    mail.Body = "New member"; 

    SmtpServer.Port = 587; 
    SmtpServer.Credentials = new System.Net.NetworkCredential("[email protected]", "**Mypass**"); 
    SmtpServer.EnableSsl = true; 

    SmtpServer.Send(mail); 
} catch(Exception ex) { 
    throw ex; 
} 
+0

あなたは例外をキャッチしていますか? – xxpor

答えて

2

スパマーがサービスを使用して迷惑メールを送信しないように、送信SMTP接続をブロックしている可能性があります。取得しているエラーメッセージを確認し、サーバーホストのポリシーを確認する必要があります。

+0

接続した相手が一定期間後に正しく応答しなかったか、接続されたホストが応答しなかったために接続が失敗したために、接続の試行が失敗しました74.125.53.109:25 -------それは私が持っているエラーです。 – CsharpBeginner

+0

彼らはポート25をブロックしているように見えます:-( –

+0

Godaddyはしばらくポート25をブロックしています。http://www.stemkoski.com/godaddy-dedicated-server-hosting-blocks-port-25/ –

0

godaddy smtpサーバーから電子メールを送信する必要があります。私は思うより前に、彼らと同じ問題を経験しました。私は彼らが彼らのFAQを通してログインする方法の指示を与えると信じています。

0

サーバへのsshアクセスがある場合は、25ポートと465ポートを使用してsmtp.google.comにtelnetしてみてください。タイムアウトが発生すると、特定のIP範囲外のこれらのポートにファイアウォールで接続されている可能性が高くなります。 ポート587はTLS用です。 SSLを使用しているときは、ポート465を試してください。

2

Godaddyからホストされているサイトの内部から送信する場合は、いくつかのことがあります。彼らのリレーサーバーを使ってメッセージを送ります(これはあなたのdevマシンからはうまくいかないので、アップロードした後にそれをテストしなければなりません)。 Hereは中継サーバー情報です。また、 "差出人"アドレスが同じドメイン内の電子メールであることを確認してください。私は通常、toAddressと同じものを使用します。これがなぜ必要なのかについては、hereを参照してください。

これは私がGoDaddyの内部サイトから送信するために使用しているコードです:

 btnSend.Disabled = true; 

     const string serverHost = "relay-hosting.secureserver.net"; 
     var msg = new MailMessage(toAddress, toAddress); 
     msg.ReplyTo = new MailAddress(emailFrom); 

     msg.Subject = subject; 
     msg.Body = emailBody; 
     msg.IsBodyHtml = false; 

     try 
     { 
      var smtp = new SmtpClient(); 
      smtp.Host = serverHost; 
      smtp.Credentials = new System.Net.NetworkCredential("account", "password"); 
      smtp.Send(msg); 
     } 
     catch (Exception e) 
     { 
      //Log the errors so that we can see them somewhere 
     } 
関連する問題