2011-02-07 26 views
0

このサイトは、私が以前に直面したすべての問題に非常に役立ちましたが、私は次のことについて助けを得ることができませんでした。ASP電子メール送信エラー

私は電子メールを送信できるウェブサイトを開発しました。 localhostでは、これは絶対にうまく動作します。私はlocalhostと言うと、送信された電子メールを受け取ることができますが、サーバーにアップロードすると、電子メールを送信するプロセスを開始するときにこのエラーに直面します。

「接続先が適切に一定期間後に応答しなかった、または接続されたホストがIPADDRESSを応答に失敗したため、確立された接続が失敗したため、接続の試みが失敗しました:PORTを」ポートのadrressでpingを試してみました

pingが動作しています。ここで

はコード

string strFrm = ConfigurationManager.AppSettings["FromAddress3"].ToString(); 

string[] receive = {"emailaddress1","emailaddress2","emailaddress3","emailaddress4"}; 

string subject = "New registration"; 

string body = "<html><head><title>Registered Candidates</title></head><body>bla bla bla</body></html>"; 

//I however have put reg exp validator on the form 

if(txtEmail.Text.Contains("@") && txtEmail.Text.Contains(".")) 
{ 
    for (int i = 0; i <= receive.Length - 1; i++) 
    { 
     MailMessage msg = new MailMessage(strFrm, receive[i], subject, body); 
     msg.IsBodyHtml = true; 

     SmtpClient client = new SmtpClient(); 

     client.Send(msg); 
    } 

    Response.Redirect("Thankyou.html"); 

は助けてくださいWeb.configファイル

<mailSettings> 
    <smtp from="from address"> 
    <network host="server" port="25" 
userName="username" password="password" /> 
    </smtp> 
</mailSettings> 

です。私はサイトのプリコンパイルを介して自分のサーバーにアップロードし、ファイルをアップロードします。

+0

プロダクションサーバはローカルホスト上でSMTPを有効にしていますか? Web.configでSMTP設定を構成しましたか? –

+0

返信Jakobに感謝します。 ローカルホストであっても、プログラムはSMTPサーバーに接続され、提供された電子メールアドレスにメールを送信します。 はい。私はあなたが上に見ることができるように、Web設定で設定を構成しました。メールを送信している間に設定を乗り越えようとしました。 –

+0

あなたはSMTPアドレスを上書きしているように見えませんか?そして、あなたはサーバがSMTPを有効にしていると確信していますか? –

答えて

0

..:D

私のホスティングサーバーはGoDaddyのだったし、私のホスティングプランは、年齢、古いsystem.web.mailすなわちCDOSYSの概念をサポートしていました。

ここにコードがあります。

using System.Web.Mail; 

private void SendEmail() 
{ 
const string SERVER = "relay-hosting.secureserver.net"; 
MailMessage oMail = new System.Web.Mail.MailMessage(); 
oMail.From = "[email protected]"; 
oMail.To = "[email protected]"; 
oMail.Subject = "Test email subject"; 
oMail.BodyFormat = MailFormat.Html; // enumeration 
oMail.Priority = MailPriority.High; // enumeration 
oMail.Body = "Sent at: " + DateTime.Now; 
SmtpMail.SmtpServer = SERVER; 
SmtpMail.Send(oMail); 
oMail = null; // free up resources 
} 

ありがとうございました! :)

+0

空のユーザー名/パスワードを入力していますか?あなたの変更を元の質問に編集してください(これは答えです)、あなたのサーバのログイン/パスワードを変更することを忘れないでください。 –

+0

(今この回答を削除する必要があります) –

1

プロダクションサーバー上のSMTPサービスを指していることを確認してください。開発用マシンと同じように "localhost"では動作しない可能性があります。 SMTPが有効になっている場合、サーバーにpingを実行しても実際には通知されません。

私は、一般的にweb.configファイルで私のサイトのためのSMTPの設定を好む:

<system.net> 
    <mailSettings> 
    <smtp deliveryMethod="Network" from="[email protected]"> 
     <network host="localhost" port="25" userName="user" password="pass" /> 
    </smtp> 
    </mailSettings> 
</system.net> 

UPDATE:

あなたのコードは、開発マシンに取り組んでいる、それは同じで、サーバー上で障害が発生した場合おそらく何かがブロックされています。私は、サーバーのSMTP設定をテストするだけで何もしない単純な実装を試してみることをお勧めします。 <smtp deliveryMethod="SpecifiedPickupDirectory">を試してみるといいかもしれませんが、電子メールを送信するコードをテストするときには非常に役立ちます。 MSDNのSmtpDeliveryMethod Enumerationを参照してください。解決

+0

編集済みのweb.config。それはのようになります。この <ネットワークホスト= "サーバー" ポート= "25" userNameの= "ユーザ名" パスワード= "パス" /> と NetworkCredentialのNC =新しいNetworkCredentialの(Usrの、Pwdの)を削除しました。 client.UseDefaultCredentials = false; client.Credentials = nc;プログラムからの 。それでも私は同じことを得る。 私がlocalhostと言ったとき、私はIIS上でホストしましたが、このページはwe.configと同じsmtpサーバーに接続してメールを送信します。 –

+0

web.configを含む最新の変更内容で質問を更新してください。 :) –

+0

外部のアプリケーションが同じ電子メールを送信するために使用できる特定のフォルダに電子メールをコピーします。 私の問題を解決するにはどのように役立つのですか? –

関連する問題