簡體   English   中英

如何在 Vista 上設置 smtp 以便我可以使用 System.Net.Mail?

[英]How do I set up smtp on Vista so I can use System.Net.Mail?

據我了解,Vista 上的 IIS 中沒有 SMTP 服務器。 我正在做一個需要我發送 email 的項目。 我想從運行 Vista Ultimate 的開發盒上的一些簡單原型開始。 我沒有連接到可以在某個地方使用交換服務器的公司網絡。

我意識到我可以安裝幾台 smtp 服務器,但我不確定安裝后該怎么做。 我知道如何編寫代碼來發送 email,但我不知道需要進行什么樣的配置才能使用 smtp 服務器。

我想要的是清楚地描述一旦我在我的 Vista 機器上安裝了 smtp 服務器后該怎么做。

謝謝!

更新:我下載了這個 smtp 服務器: http://softstack.com/freesmtp.html

這是我的代碼的樣子:

class Program
{
    static void Main(string[] args)
    {
        MailMessage message = new MailMessage();    
        message.From = new MailAddress("tad@myconsoleapp.com");    
        message.To.Add(new MailAddress("terry.donaghe@gmail.com"));               
        //message.To.Add(new MailAddress("recipient3@foo.bar.com"));    
        //message.CC.Add(new MailAddress("carboncopy@foo.bar.com"));    
        message.Subject = "This is my subject";    
        message.Body = "This is the content";    
        SmtpClient client = new SmtpClient("localhost");    
        client.Send(message);    
        Console.ReadLine();     
    }
}

當我運行這個 smtp 服務器並執行我的控制台應用程序時,它會提交 client.send 行。 smtp 服務器如下所示:

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

一段時間后,client.send 超時。

任何想法現在出了什么問題?

謝謝!

如您所知,SMTP 不再隨 Vista 一起提供(這是我對 Vista 最大的抱怨之一)。 正如您已經知道的那樣,那里有很多選擇,如果您找到一個不錯的免費選項,請發布指向它的鏈接。 您如何配置它可能取決於您安裝的服務器。

我玩了一些試用 smtp 服務器,我使用的所有服務器都開始在環回 IP 地址上的標准 SMTP 端口上監聽。 我相信這是默認的 MailSettings,不需要任何更改。

我不再有任何 SMTP 服務器,並且正在使用分揀目錄模式。 這會導致郵件庫 output 成為一個文件,然后我可以檢查該文件。

要對此進行配置,請在配置文件中使用以下內容:

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

編輯

特里問了一個關於使用放置位置的好問題。 我僅將其用於測試,因為我們的生產服務器有一個我連接到的 SMTP 服務器,並通過它發送 email; 但是,一些 SMTP 服務器可以配置為監視目錄,並將在那里接收和郵寄任何內容。

我不認為此功能僅用於測試,但效果很好。 生成的文件可以在各種郵件客戶端中打開,這樣您就可以看到它們將如何呈現它們。 我相信 they.eml 文件,但我不記得了。

@喬什伯克

我嘗試使用以下選項,但收到“無法獲取 IIS 拾取目錄”。 我知道我指向一個現有目錄,是否需要在該目錄上設置權限?

<smtp deliveryMethod="SpecifiedPickupDirectory">
     <specifiedPickupDirectory pickupDirectoryLocation="c:\maildrop"/>
</smtp>

您可以在 stickymailserver 中找到編碼為C# .NET的非常基本的SMTP服務器:

粘性郵件服務器是一種低交互 SMTP 蜜罐,旨在模擬開放的 SMTP 中繼。 它捕獲和記錄探測消息和群發郵件,並保存它們以供以后分析。

您可以使用外部托管的 SMTP 服務器。 我發現如果原始 SMTP 服務器位於動態 IP 地址后面(如大多數住宅系統),很多 email 系統將阻止訪問。

我最近不得不這樣做。

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

使用“SendCompleted”事件,您可以在后台發送 email 而不會延遲應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM