分拣目录 (Pickup directory), 从文件系统接收符合 RFC-822 标准的文件的目录,其目的是为了创建可传递到提交队列中的邮件对象。 TechNet上已经很详细的介绍了如何配置分拣目录。
在集线器传输服务器(HTS)和边缘传输服务器(ETS)中,分拣目录已经默认存在了。默认路径为:
C:\Program Files\Microsoft\Exchange Server\TransportRoles\Pickup
经过复制到分拣目录中的格式正确的电子邮件文件将被提交以进行传递…
Figure.01 查看默认路径
PickupDirPath
Figure.02 收到的邮件信息及正文
 inbox.test.eml

查看这封邮件的邮件头:
Content-Type: multipart/mixed;
    boundary="_b38f6a69-73d6-474d-86c5-9bbd9c3f5459_"
MIME-Version: 1.0
From: <[email][email protected][/email]>
Sender: <[email][email protected][/email]>
To: <[email][email protected][/email]>
Subject: This is a test.
Message-ID: <[email][email protected][/email]rator>
Date: Sun, 2 Dec 2007 22:43:32 +0800
X-MS-Journal-Report:
那…分拣目录到底是干嘛用的?—_—
这个目录一般用来测试邮件流的情况,以上的例子我已经说明了…分拣目录是作为一个单独出的模块存在与HTS上, 如果有人看过HTS的架构, 就应该可以发现. Pickup Diectory在接到邮件后,如果满足要求, 即会将邮件传输到投递队列中, 再经过漫长的旅途和SMTP的慷慨递送之后就可以到达目标Inbox中了, 此例是绕圈…
 
How can the HTS do?  HTS干嘛使的?
•处理组织内的所有邮件流、应用组织邮件策略、并负责将邮件传递给收件人的邮箱
HTS provide the following functionality
•邮件流 Mail flow
•分类 Categorization
•路由 Routing
•传递 Delivery
 
Pickup Directory 位于HTS和ETS上是如何处理邮件的?
1.Check new mail/5s,处理速率=100/Min*(Set-TransportServer)
2.Check mail’s Restrictions(Mailheadmax=64KB, Addresseemax=100)
3.Rename .eml –> .tmp (.tmp)
4..tmp –> mail, system send a “del when closed” to the .tmp file.
5…  
Then..Success! Then send “Closed”, if false, log it. 这里就是.TMP文件到最后会被删除的原因了,因为有命令…

System.Web.Mail and the pickup directory  -By Daniel Fisher (lennybacon).

Introduction

When you send e-mail using System.Web.Mail and the local SMTP server, you can avoid the roundtrip to the network and use the pickup directory.

The Code

You can easily update your existing code. For example take this:
eMail = new MailMessage();
eMail.BodyFormat = MailFormat.Text;
eMail.To = "[email][email protected][/email]";
eMail.Body = _Body;
eMail.From = _SendFrom;
SmtpMail.SmtpServer = "localhost";
SmtpMail.Send(eMail);
Just add two lines of code and you are done:
eMail = new MailMessage();
eMail.BodyFormat = MailFormat.Text;
eMail.To = "[email][email protected][/email]";
eMail.From = _SendFrom;
eMail.Body = _Body;
SmtpMail.SmtpServer = "localhost";
eMail.Fields["http://schemas.microsoft.com/cdo/configuration/sendusing"] = 1;
eMail.Fields[
"http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory"] =
"C:\\Inetpub\\mailroot\\Pickup";
SmtpMail.Send(eMail);