Tải bản đầy đủ (.pdf) (9 trang)

Thư mục Pickup của Exchange pps

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (322.53 KB, 9 trang )

Thư mục Pickup của Exchange
N
ếu bạn đã duyệt cấu trúc thư mục được tạo sau khi cài đặt Exchange 2007 thì
có thể phát hiện thấy một thư mục có tên Pickup xuất hiện ở một số thư mục
bên dưới Exchange gốc. Thư mục này cũng có trong một số phiên bản trước
đây của Exchange và chính vì vậy có thể bạn cũng đã biết một chút về nó. Một
điểm chung trong sử dụng thư mục này là để test luồng mail mà không cần sử
dụng máy khách thư tín. Vấn đề này được thực hiện bằng cách copy các file
văn bản đã được định dạng đúng vào thư mục pickup này, sau đó Exchange sẽ
xử lý và phân phối chúng như thường lệ. Trong bài này, chúng tôi sẽ giới thiệu
cho các bạn về thư mục pickup và cách sử dụng nó để test luồng mail b
ên trong
cơ sở hạ tầng Exchange.

Cấu hình thư mục Pickup

Thư mục pickup không tồn tại một cách đáng cần thiết trong mỗi máy chủ
Exchange 2007. Nó thực sự chỉ cần tồn tại trong máy chủ Exchange 2007 chạy
role Hub Transport hoặc Edge Transport. Mặc định, thư mục pickup này nằm
trong \Program Files\Microsoft\Exchange Server\TransportRoles trong ổ đĩa
mà bạn đã cài đặt Exchange, xem trong hình 1.

Hình 1: Vị trí mặc định của thư mục Pickup
Do sự cấu hình của thư mục pickup không giống như những thứ mà bạn cần
phải thực hiện nó hàng ngày, nên có thể đoán thư mục này chỉ được cấu hình
thông qua Exchange Management Shell. Lệnh cmdlet có thể sử dụng để kiểm
tra các thiết lập của thư mục này là Get-TransportServer. Tuy vậy nếu bạn đưa
các kết quả của lệnh Get-TransportServer vào trong cmdlet danh sách định
dạng (format-list) thì sẽ thấy ở đó có nhiều thuộc tính máy chủ truyền tải và
việc tìm các thuộc tính của thư mục pickup nào đó sẽ không dễ dàng chút nào.
Cách tốt nhất mà bạn nên thực hiện là lọc ra các kết quả để tìm thuộc tính bắt


đầu với chuỗi pickup và vì vậy cmdlet để sử dụng sẽ phải như sau:
Get-TransportServer | fl pickup*
Bạn có thể thấy được các kết quả của cmdlet này trong hình 2 bên dưới.

Hình 2: Các thuộc tính của thư mục Pickup
Có một thứ cần lưu ý đối với lệnh này là máy chủ đang chạy trong ví dụ này đ
ã
cài đặt Hub Transport role rồi, chính vì vậy chúng tôi không cần tham chiếu
tên máy chủ trong trường hợp này. Bạn cũng nên nhớ rằng nếu cần chạy lệnh
này trên một máy chủ điều khiển xa thì bạn cần phải chỉ định tên máy ch
ủ bằng
tham số nhận dạng. Cũng vậy, bạn cần phải sử dụng tham số nhận dạng khi sử
dụng lệnh Set-TransportServer để thay đổi cấu hình của thư mục pickup.

Chúng ta hãy xem xét đến từng thuộc tính trong hình 2 một cách lần lượt và
thảo luận về nhiệm vụ của chúng, tên của các thuộc tính cần phải được giải
thích một cách rõ ràng. Trước tiên thuộc tính PickupDirectoryMaxHeaderSize
được sử dụng để cấu hình kích thước tối đa của header thư mà máy chủ
Exchange 2007 Hub Transport hoặc Edge Transport sẽ chấp thuận. Mặc định,
nó được thiết lập là 64KB và chính vì vậy đáp ứng hầu như được các nhu cầu.
Tuy vậy nếu bạn cần thay đổi giá trị này thì hãy sử dụng lệnh dưới đây:
Set-TransportServer –Identity {server name} –
PickupDirectoryMaxHeaderSize
{value}
Tham số {value} có thể được biểu diễn theo kiểu byte đến gigabyte bằng các
giá trị chuỗi như 128KB hoặc 1MB.

Tiếp đến thuộc tính ickupDirectoryMaxMessagesPerMinute là thuộc tính sẽ
chỉ định tốc độ máy chủ có thể xử lý thư tín từ thư mục pickup như thế nào và
có một thiết lập mặc định là 100. Cấu hình mặc định này sẽ đáp ứng đủ cho tất

cả nhu cầu luồng thư tín, tuy nhiên nếu bạn viết một ứng dụng có hơn 100 thư
tín trên mỗi phút vào thư mục pickup thì cần thay đổi giá trị này. Rõ ràng việc
test ở đây rất quan trọng để thấy được cấu hình có hiệu lực hay chưa.

Bạn cũng có thể hạn chế số người nhận đối với mỗi một thư tín đã được áp
dụng cho thư mục pickup thông qua thuộc tính
PickupDirectoryMaxRecipientsPerMessage. Giá trị mặc định của nó là 100.
N
ếu bạn đã cấu hình Exchange 2007 trong tổ chức như vậy thì người dùng chỉ
có thể gửi một thư tín với một số lượng tối đa nào đó người nhận để bảo đảm
hiệu suất hệ thống, bạn cũng nên xem xét đến thiết lập thư mục pickup sao cho
phù hợp với giá trị này. Ví dụ, nếu bạn muốn thiết lập số lượng lớn nhất người
nhận thư đã được đệ trình cho thư mục pickup là 500 thì nên sử dụng lệnh sau:

Set-TransportServer –Identity {server name} –
PickupDirectoryMaxRecipientsPerMessage 500
Cuối cùng là bạn có thể thay đổi vị trí của thư mục pickup bằng việc thay đổi
thuộc tính PickupDirectoryPath. Cho ví dụ, có lẽ bạn đã thực hiện một mảng
đĩa chuyên dụng trên máy chủ Hub Transport của mình để quản lý các hàng
đợi cơ sở dữ liệu và bạn muốn mảng chuyên dụng này cũng quản lý thư mục
pickup. Về mặt cá nhân thì tôi thích bảo đảm rằng đường dẫn mặc định đầy đủ
nên được duy trì khi chuyển vị trí thư mục vào trong các m
ảng đĩa khác. Ví dụ,
nếu tôi đang chuyển thư mục pickup thành ổ đĩa E: thì tôi cần phải bảo đảm
rừng vị trí thư mục pickup cần phải được thiết lập trong thư mục E:\Program
Files\Microsoft\Exchange Server\ thông qua cmdlet sau:
Set-TransportServer –Identity {server name} –PickupDirectoryPath
“E:\Program Files\Microsoft\Exchange Server\TransportRoles\Pickup”
Bạn có thể sẽ phân vân rằng thư mục pickup nào sẽ được sử dụng cho mục
đích bất chính, như việc gửi các thư không mong muốn cũng là một ví dụ. Câu

trả lời ở đây là “yes” và chính vì vậy thư mục này cần phải được bảo vệ. Nếu
bạn tự tin rằng mình không cần chức năng của thư mục pickup thì có thể vô
hiệu hóa nó bằng cách chỉ định đường dẫn thư mục pickup là $null, xem thể
hiện trong lệnh bên dưới:
Set-TransportServer –Identity {server name} –PickupDirectoryPath $null
Hãy nhớ rằng thư mục pickup được kích hoạt mặc định trong tất cả các máy
chủ Exchange 2007 có cài đặt role Hub Transport hoặc Edge Transport.

Gửi thư tín

Chúng ta đã cấu hình được thư mục pickup bằng các thiết lập yêu cầu của
mình, lúc này hãy xem xét cách bạn có thể sử dụng nó như thế nào. Như đã
tuyên bố trong phần đầu của bài viết, thư mục pickup được sử dụng để gửi các
thư tín thông qua hệ thống Exchange 2007 bằng cách sắp xếp các thư này vào
thư mục pickup. Các thư tín này có thể được tạo dưới một trình soạn thảo văn
bản đơn giản như Notepad, sau đó được lưu vào thành một file có đuôi mở
rộng là .eml, tiếp đến được đặt vào trong thư mục pickup để xử lý. Các nội
dung thư phải được định dạng đúng để xử lý. Một ví dụ đơn giản về thư này
được chúng tôi đưa ra trong hình 3 bên dưới. Lưu ý rằng tên file ở đây là
message.eml. Để Exchange 2007 xử lý đúng thư thì file cần phải có phần mở
rộng là .eml.

Hình 3: Một thư mẫu
Chúng ta hãy xem những gì xảy ra khi file thư .eml được copy vào thư mục
pickup. Đầu tiên bạn sẽ thấy file .eml được liệt kê ngắn ngọn trong thư mục
trước khi nó được đặt lại tên thành message.tmp như trong hình 4 bên dưới.
Theo kinh nghiệm của tôi, quá trình này xuất hiện trong khoảng 5 giây đệ trình
file cho thư mục. Giả dụ rằng mọi thứ được cấu hình đúng với định dạng của
thư thì Exchange sẽ xử lý nó và thư sẽ được phân phối đi đến đúng địa chỉ như
những gì bạn thấy trong hình 5. Ở đây bạn có thể thấy file .tmp đã bị khóa và

không th
ể mở thông qua Notepad; những cố gắng để thực hiện điều đó đều gặp
phải thông báo lỗi Access Denied.

Hình 4: Chuyển đổi thành file .tmp

Hình 5: Thư được phân phối
Các file .tmp được sẽ tự động bị xóa sạch bởi hệ thống theo một chu kỳ cơ b
ản.
Dịch vụ Microsoft Exchange Transport dường như chịu trách nhiệm cho việc
xử lý các thư từ thư mục pickup, chính vì vậy cần tìm hiểu thêm những gì đã
xảy ra nếu dịch vụ này bị dừng và khởi động lại trước khi các file .tmp được
xóa. Với các file .tmp đang tồn tại trong thư mục pickup, chúng tôi thử dừng
và khởi động lại dịch vụ Microsoft Exchange Transport và thấy rằng các file
.tmp đang tồn tại đã bị xóa.
Sai định dạng

Vậy điều gì sẽ xảy ra nếu file .eml được định dạng sai? Trong một bài test,
chúng tôi sử dụng một file thư .eml gốc và đã xóa dòng đầu tiên (dòng ch
ỉ định
người gửi thư). Kết quả thu được là thay vì việc đặt lại tên của file để nó có
đuôi mở rộng .tmp sau đó phân phối thư thì Exchange đã đặt lại t
ên file có đuôi
mở rộng là .bad và để lại file này trong thư mục pickup (xem trong hình 6).

Hình 6: Thư lỗi
Thêm vào đó, một log entry ghi sự kiện cũng được ghi vào trong bản ghi sự
kiện Application như trong hình 7. Vấn đề này có nguồn gốc từ
MSExchangeTransport và event ID là 9010. Phần mô tả khá cụ thể vấn đề
nhưng nó không tuyên bố rõ ràng tên file gây ra vấn đề đó. Việc đó nói nên

rằng tất cả những gì bạn cần thực hiện là tìm các file có đuôi .bad trong thư
mục pickup và kiểm tra chúng để xem tại sao chúng lại bị định dạng như vậy.

Hình 7: Mục bản ghi sự kiện thư lỗi
Một điểm thú vị khác mà chúng tôi muốn đề cập đến ở đây là, không giống
như các file .eml, khi một file .bad tồn tại trong thư mục pickup thì nó sẽ
không bị xóa sau khi dừng và khởi động lại dịch vụ Microsoft Exchange
Transport. Rõ ràng các file này cần phải xóa một cách thủ công khi bạn thấy
event ID được liệt kê như trong hình 7 để không tồn tại các file không mong
muốn trong thư mục này. Chúng tôi cũng nhắc thêm là sau khi dịch vụ
Microsoft Exchange Transport được khởi động lại thì một copy mới event ID
9010 sẽ không được ghi vào bản ghi sự kiện ứng dụng cho tới khi một sự kiện
mới của thư lỗi xuất hiện. Đây chính là ưu điểm để ngăn chặn các cảnh báo lỗi
mỗi khi dịch vụ Microsoft Exchange Transport được khởi động lại.

Kết luận

Thư mục SMTP Pickup trong máy chủ Exchange 2007 Hub Transport hoặc
Edge Transport có thể dễ dàng bị các quản trị viên bỏ sót khi muốn test luồng
thư hoặc là có lẽ trong tìm kiếm một phương pháp đơn giản để gửi các thư đi
ện
thử mà không có máy khách email. Thực sự cũng đáng để nhắc nhở bản thân
mình về việc tồn tại thư mục này và ngược lại nếu bạn quan tâm đến vấn đề
bảo mật và không muốn sử dụng nó thì hãy vô hiệu hóa toàn bộ chức năng n
ày.

Văn Linh (Theo MsExchange)

×