2

フレームワーク 2.0 を使用して C# で記述された単純な .net Web アプリケーションがあります。

それが行う唯一のことは、この関数を呼び出すことです:

    static void SendMail(string strSubject, string strBody, string strFrom, string strTo, string strHost)
    {
        MailMessage msg = new MailMessage();
        msg.From = new MailAddress(strFrom);
        msg.To.Add(new MailAddress(strTo));

        msg.Subject = strSubject;
        msg.Body = strBody;
        msg.Priority = MailPriority.Normal;

        SmtpClient smtpClient = new SmtpClient();
        smtpClient.Host = strHost;
        smtpClient.Send(msg);
    }

コンパイルしてエラーなく実行できますが、誰に送信してもメールが届きません。

しかし、不思議なことに、マネージャーのコンピューターでコンパイルして実行した同じプログラムが正常に動作し、電子メールを送信します。

どちらも Visual Studio 2008 で実行しています。

彼のコンピューターと私のコンピューターの唯一の違いは、彼が Windows XP を使用しており、私が Windows 7 を使用していることです。

どんな情報でも役に立ちます。確認できるものを探しています。

4

5 に答える 5

1

ファイアウォールの問題である可能性があるようです。マシンのファイアウォール、またはネットワークのファイアウォールのいずれか。また、迷惑フォルダもご確認ください。これらは単純に聞こえるかもしれませんが、それがあなたのマネージャーにとって機能しているという事実は、コード以外の問題のように思えます。

于 2012-05-04T21:41:43.643 に答える
0

XPボックスはSMTPサーバーにアクセスできますか?

SmtpClient、MailMessageなどを正常に使用できるようにするためにSMTPサーバーに提供する必要がある4つのパラメーターがあります。

  • host = "SMTPServerHostName"
  • port = "portNumber"(通常はポート25が使用されます)
  • userName = "username"
  • password = "password"

XP PCがSMTPServerHostNameにアクセスできないか、ローカルホストを使用している場合は、XPワークステーションにSMTPがインストールされていない可能性があります。

もう1つの可能性は、Joshが言ったように、host:portがブロックされていることです。

于 2012-05-04T21:45:19.113 に答える
0

解決策を見つけました!

私のローカル IIS (バージョン 7) には、「SMTP 電子メール」というアイコンがあります。これを開いてみると、「メールをピックアップ ディレクトリに保存する」に設定されていることがわかりました。これは、私のコンピューターを使用していた以前のプログラマーが設定したものに違いありません。「電子メールをSMTPサーバーに配信する」にリセットしたところ、すべてうまくいきました。

注: IIS が実行されている必要さえありません。

于 2012-05-07T23:19:13.033 に答える
0

SmtpClient では資格情報やアカウント情報を設定していないため、メールを送信しようとすると、アカウント情報がないと送信できません。これを置き換えます:

SmtpClient smtpClient = new SmtpClient();
smtpClient.Host = strHost;
smtpClient.Send(msg);

と:

SmtpClient smtpClient = new SmtpClient();
smtpclient.Credentials = new NetworkCredentials(email, password);
smtpClient.Host = strHost;
smtpClient.Send(msg);

電子メールとパスワードを自分のものに置き換えます。

お役に立てれば!

于 2012-05-04T21:54:56.400 に答える
0

古い XP マシンには SMTP 機能が備わっている場合があります。私はこの正確なことを見てきました。Windows 7 にはネイティブの SMTP 機能がありません。私の古い XP マシンには IIS を備えた SMTP サーバーがあり、メールを送信する既存のプログラムが Windows 7 で失敗したことは知っています。

于 2012-05-04T22:24:12.437 に答える