2009-03-31 1 views
8

VistaのIISにはSMTPサーバーがありません。私は電子メールを送信する必要があるプロジェクトに取り組んでいます。私はVista Ultimateを実行している私の開発ボックスで、いくつかの簡単なプロトタイプから始めたいと思っています。私はちょうどどこかの交換サーバーを使うことができる企業ネットワークには接続していません。System.Net.Mailを使用できるように、Vistaでsmtpを設定するにはどうすればよいですか?

私はインストールできるSMTPサーバがいくつかあることを認識していますが、一度インストールすると何をすべきか分かりません。私は電子メールを送信するコードを記述する方法を知っていますが、smtpサーバーを使用するためにはどのような構成が必要かわかりません。

私が望むのは、Vistaボックスにsmtpサーバーをインストールしたら、何をすべきかを明確に説明することです。

ありがとうございます!

UPDATE:私はこのSMTPサーバーをダウンロード:http://softstack.com/freesmtp.html

は、ここに私のコードは次のようになります。

class Program 
{ 
    static void Main(string[] args) 
    { 
     MailMessage message = new MailMessage();  
     message.From = new MailAddress("[email protected]");  
     message.To.Add(new MailAddress("[email protected]"));    
     //message.To.Add(new MailAddress("[email protected]"));  
     //message.CC.Add(new MailAddress("[email protected]"));  
     message.Subject = "This is my subject";  
     message.Body = "This is the content";  
     SmtpClient client = new SmtpClient("localhost");  
     client.Send(message);  
     Console.ReadLine();  
    } 
} 

私はこのSMTPサーバーを実行していると私は私のコンソールアプリケーションを実行すると、それはクライアントに渡します.send行。

http://screencast.com/t/2B7jv0bE14

client.send回中出しした後:SMTPサーバーは、次のようになります。

何が問題になっているのですか?

ありがとうございます!

答えて

9

あなたが知っているように、SMTPはVistaと一緒に出荷されなくなりました(これはVistaに関する私の最大の苦情の1つです)。あなたがすでに知っているように、そこには多くのオプションがあり、あなたが良い無料のものを見つけたらそれへのリンクを投稿します。設定方法は、インストールするサーバーに依存します。

私はいくつかの試用SMTPサーバで遊んでいましたが、私が使ったものはすべて、ループバックIPアドレスの標準SMTPポートで待機し始めました。私はこれがデフォルトのMailSettingsだと考えており、変更を必要としないはずです。

SMTPサーバーがなく、ピックアップディレクトリモードを使用しています。これにより、メールライブラリはファイルを出力し、それを検査することができます。これはあなたの設定ファイルに次のように使用し設定するに

<system.net> 
    <mailSettings> 
     <smtp deliveryMethod="SpecifiedPickupDirectory"> 
      <specifiedPickupDirectory 
       pickupDirectoryLocation="c:\maildrop"/> 
     </smtp> 
    </mailSettings> 
</system.net> 

あなたがローカルホスト上のポート25に接続するように設定したい場合は、SMTPセクションのこの希望:

<smtp deliveryMethod="Network"> 
    <network defaultCredentials="true" host="localhost" port="25"/> 
</smtp> 

編集

Terryさんは、ドロップ位置の使用について良い質問をしました。プロダクションサーバーには接続するSMTPサーバーがあり、電子メールを送信するため、テスト用にのみ使用します。ただし、一部のSMTPサーバーはディレクトリを監視するように構成でき、そこにあるものはすべてピックアップしてメールします。

私はこの機能がテストのためだけに使用されるとは考えていませんが、うまく機能します。生成されたファイルはさまざまなメールクライアントで開くことができるので、どのようにレンダリングするかを見ることができます。私はそれらの.emlファイルを信じていますが、私は覚えていません。

+0

このテクニックはメールを送信しません。テストのためだけに使用されていますか? –

+0

ありがとう:-)私はまだこのソリューションを愛しています – JoshBerke

0

あなたはstickymailserverC# .NETにコード化された非常に基本的なSMTPサーバーを見つけることができます。

をスティッキーメールサーバは、オープンSMTPリレーをエミュレートするために設計された、低相互作用SMTPハニーポットです。プローブメッセージと大量メールをキャプチャしてログに記録し、後で分析するために保存します。

0

外部からホストされたSMTPサーバーを使用できます。私は、元のSMTPサーバーが(ほとんどの住宅システムのように)動的なIPアドレスの後ろにある場合、多くの電子メールシステムがアクセスをブロックすることを発見しました。

私は最近これを行う必要がありました。

SmtpClient smtp = new SmtpClient("smtp.myserver.com"); 
smtp.DeliveryMethod = SmtpDeliveryMethod.Network; 
smtp.Credentials = new System.Net.NetworkCredential("Username", "Password"); 

"SendCompleted"イベントを使用すると、アプリケーションを遅らせることなくバックグラウンドでメールを送信できます。

0

@JoshBerke

私は、以下のオプションを使用してみましたが、「IISのピックアップディレクトリを取得できません」受信しました。私は既存のディレクトリを指していることを知っています、ディレクトリに設定する必要があるアクセス許可はありますか?

<smtp deliveryMethod="SpecifiedPickupDirectory"> 
    <specifiedPickupDirectory pickupDirectoryLocation="c:\maildrop"/> 
</smtp> 
関連する問題