2011-01-03 24 views
15

IIS7のWindows 7マシンでSMTPサーバーを設定しようとしています。私は「localhostにメール、ポート25、認証なしを配信するためにそれを設定している。しかし、私は私のC#プログラムからプログラム接続しようとすると、私はエラーを取得:。?IIS7経由で電子メールを送信するには?

Failure sending mail", inner exception "No connection could be made because the target machine actively refused it 127.0.0.1:25

public static void SendEmail(MailMessage m) { 
    var smtp = new SmtpClient { 
    Host = "localhost", 
    Port = 25, 
    UseDefaultCredentials = true, 
    }; 
    smtp.Send(m); 
} 

なぜ他にどのような秘密のスイッチを?私が反転しなければならないのあなたはIIS7でのセットアップSMTPサーバーに必要

+0

SMTPサーバーをセットアップする必要があります。 IISがメールを送信するために使用するサーバー情報を変更したと思われます。受信するのではありません。 – svinto

+0

@svinto - how? (それが答えであれば、答えではなくコメントにしてください) –

+0

あなたはそのIPとポートでsmtpサーバーを実行していますか? –

答えて

5

ベストの方法I F oundはSMTP4Devを使用しました。これは電子メールをリッスンし、「送信された」ものを表示しますが、実際には何も送信しません。テストに最適!私はファイルシステムにメールを保存する使用開発目的のために

3

、ここでの命令があるかのセットアップ:

http://learn.iis.net/page.aspx/751/configure-smtp-e-mail-in-iis-7/

+0

ありがとう、しかし、私はWindows 7を持っていない - "サーバーマネージャー"なし –

+2

申し訳ありませんがWindows 7であることを認識していませんでした.Windows 7のSMTPのサポートはありません、これについては、 : http://serverfault.com/questions/64753/smtp-server-on-windows-7 – ShahidAzim

+0

ServerFaultへのリンクありがとうございました+1の価値があります –

11

、web.configファイル

<mailSettings> 
    <smtp deliveryMethod="SpecifiedPickupDirectory"> 
    <specifiedPickupDirectory pickupDirectoryLocation="c:\temp\mails\" /> 
    </smtp> 
</mailSettings> 
+0

これは優れたソリューションです。このルートをdevにすることを強くお勧めします。 – PFranchise

11

申し訳ありませんが、これを試すが、これらの答えのほとんどは完全に混乱しており、問題を説明していません。ここに問題があります。

IIS 7の「SMTP電子メール」は、Windows 7 ProfessionalとWindows Server 2008のような「本当の」Webサーバーの両方で、SMTP電子メールは真の「仮想SMTPサーバー」ではなく、シンプルメール転送プロトコル(SMTP) "を参照してください。 SMTPサーバーへのアプリケーションをオンラインにすることができます。以前のWindowsで使用していた仮想SMTPサーバーは、管理ツールの[サーバーマネージャー]を使用し、[機能を追加]をクリックして、サーバーオペレーティングシステム上のアドオンとしてのみ使用できるようになりました。それはWindows 7 Professionalとは言いません。さらに別のMicrosoftは大失敗!

しかし、開発中のIIsやWebサーバーでも「SMTP電子メール」を使用して、実際のSMTPサーバーにメールをルーティングすることはできます。それは両方が1つであり、同じであった古い日のようではなく、テストのためにあなたのローカルボックスにメールを送り戻すことができます。彼らはあなたがそれをローカルに保存することができますが、それは私にあまり役立つものではありません。それはなぜSMTP電子メール "localhost"で動作しないのですか?それはほとんどの人が言っていることです。そのためには、サードパーティのソフトウェアをインストールする必要があります。より良い解決策は、仮想サーバーとサーバーOS上にあるすべてのWebサーバーの機能を備えたWindows Server Admin Packを入手してインストールすることです。http://www.sysprobs.com/install-admin-pack-windows-7-remote-desktop-manager

実際に実行する必要はありません実際のSMTPサービス(「mail.yourwebhost.com」など)へのアドレスを持っている限り、ローカルボックスまたはサーバー上のSMTP仮想サーバー。 IIS7では、IIS7のSMTP電子メールをクリックしてアドレスを入力します。しかし、 "localhost"はwor'kしません。ほとんどのSMTPプロバイダや電子メールプロバイダは、「25」以外のポートと、SMTP電子メールの下にあるカスタム認証資格を追加していることがわかりました。 Network Solutionsは、ログイン用の電子メールアドレスとアドレス用のパスワードを使用することが好きです。私はそれを全て引き出し、ローカルのボックスに仮想SMTPサーバなしでメールC#オブジェクトがメールを送りました。最後のトリックは、あなたのC#コードにもこれを加えてください:

System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(
     "mail.yourhost.com",155);//add custom port here 
//This object stores the authentication values 
System.Net.NetworkCredential mycredentials = new System.Net.NetworkCredential(
     "[email protected]", "passwordhere"); 
client.UseDefaultCredentials = false; 
client.Credentials = mycredentials; 
関連する問題