1
public bool send()
{
    try
    {
        string body = _omschrijving;
        var fromAddress = new MailAddress("info@mydomain.com", "userfrom");
        var toAddress = new MailAddress("randomemail@gmail.com", "userto");

        const string subject = "mailmessage";

        var smtp = new SmtpClient
        {
            Host = an IP address provided by the webhosting company,
              UseDefaultCredentials = false,
              DeliveryMethod = SmtpDeliveryMethod.Network,
              Credentials = new NetworkCredential("info@mydomain.com", "password")
        };

        using (var message = new MailMessage(fromAddress, toAddress)
        {
            Subject = subject,
            IsBodyHtml = true,
            Body = "naam: " + _naam + "<br />mail: " + _email + "<br />content: " + body
        })
        {
            smtp.Send(message);
        }

        return true;
    }
    catch
    {
        return false;
    }
}

これは、私のWebサイトで簡単なフォームを使用してメールを送信するために使用するコードです。_omschrijving、_email、_naamは、メソッドが含まれるクラスのフィールドです。セキュリティ上の理由から、パスワードなどの情報も変更しました。ローカルホストからこれを使用しようとしましたが、失敗しました。サーバーに接続できませんでした。

プロジェクトをWebサーバー(メールサーバーもある)に公開しようとしましたが、完全に機能しました。

動作してよかったのですが、ローカルホストでデバッグするときになぜメールサーバーに接続しないのでしょうか。誰かがこの行動を説明できますか?

4

3 に答える 3

1

はい、あなたのホスティング業者は、自分のWebサーバーからの接続のみを受け入れるようにメールサーバーを構成しました。これは、データベースサーバーでも一般的な方法です。

于 2011-06-04T14:34:39.697 に答える
1

たぶん、ホスティング会社はSMTPサーバーへの接続をホストされたマシンだけに制限していますか?その場合、ローカルマシンの要求は拒否されます。

于 2011-06-04T14:36:35.170 に答える
0

Outlookを使用して新しいメールサーバーに接続してみたところ、問題が何であるかがわかりました。私のISPは、ユーザーがサードパーティのメールサーバーを使用して送信メールを送信することを許可していません。解決策は、ISPの送信SMTPサーバーを使用することです。他の場所でホストされているため、本番環境のフォームにとって重要ではありません。

于 2011-06-05T13:28:39.153 に答える