2012-05-04 14 views
2

Framework 2.0でC#で書かれた簡単な.net Webアプリケーションがあります。これは、コンパイルし、エラーなしで実行されますが、私は、電子メールを取得しない.netプログラムからの電子メールの送信に問題があります

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の

によ。私は確認できるものを探しています。

+0

あなたのマネージャーは自分の資格情報でログインしており、彼は電子メールを送信する権限があります。今ではあなたのマシンでプログラムを実行すると、単に送信する権限がありません。ホストタイプとは何ですか? Exchangeサーバー?ドメイン内でプログラムを使用していますか? –

+0

SMTPエラーメッセージを最初に取得してからそこから始めてください –

答えて

0

解決策を見つけました!

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

注:IISは実行する必要もありません。

1

ファイアウォールの問題のようですね。マシン上のファイアウォール、またはネットワーク上のファイアウォール。また、迷惑メールフォルダを確認してください。私はこれらの音はシンプルですが、それがあなたのマネージャーのために働いているという事実は、それがコード以外の問題のように見えることを意味します。

+1

私のファイアウォールはオフです。しかし私は私の迷惑メールフォルダに2つの電子メールが表示されます。今、私はそれを働かせるためにどのような設定を使用したのかを覚えておく必要があります。ご協力いただきありがとうございます! –

+0

@Dominic、うまくいきました。これがあなたの答えであることが判明した場合は、それを受け入れられた回答としてマークしてください。 :) – Josh

+0

ああ、それはいくつかの電子メールを生成した理由は、私は私たちのQAサーバーにプログラムを公開し、そこからWebアプリケーションを実行したためです。その後、私のコンピュータはそれを迷惑メールとタグ付けして、私はそれを見ませんでした。 –

0

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

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

  • ホスト= "SMTPServerHostName"
  • ポート= "ここで、portNumber"(一般的にポート25が使用されている)
  • のuserName = "ユーザ名"
  • パスワード= "パスワード"

たぶんXP PCできない交流SMTPServerHostNameを忘れるか、localhostを使用している場合、XPワークステーションにSMTPがインストールされていない可能性があります。

Joshが述べたように、ホスト:ポートがブロックされている可能性もあります。

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); 

ご自身でメールアドレスとパスワードを交換してください。

希望の方はこちら!

0

古いXPマシンにSMTP機能が搭載されている可能性があります。私はこの正確なことを見た。 Windows 7にはネイティブSMTP機能はありません。私の古いXPマシンにはIISが付いたSMTPサーバーがあり、メールを送信したプログラムはWindows 7で失敗していたことは分かっています。私は開発環境でこれと戦って疲れていました。

関連する問題