2011-01-23 58 views
10

Tôi đang tìm kiếm một cách nhanh chóng hoặc một thư viện để kiểm tra hộp thư đến hotmail bằng cách sử dụng HTTP. Lưu ý rằng nó phải thông qua Http và không phải pop3 hoặc Imap (không được hỗ trợ). Tôi cần điều đó vì tôi cần kết nối với một số tài khoản bằng cách sử dụng Http Proxy không được hỗ trợ trong các phiên pop3. Bất kỳ loại trợ giúp nào đều được đánh giá cao.C# kiểm tra Hộp thư đến Hotmail thông qua HTTP

Cảm ơn bạn bè =]

Trả lời

4

Tôi tin rằng hiện tại không thể thực hiện được nếu không mô phỏng những gì người dùng sẽ thực hiện trong trình duyệt. Cách đơn giản nhất để sử dụng là sử dụng "VS2010 Test Professional" hoặc "VS2010 Ultimate" để ghi lại phiên duyệt web và tạo mã C# giống như vậy! Xem here, nó làm việc cho tôi khá tốt out-of-the-box và tạo ra mã có thể đọc được, bạn có thể tái sử dụng trong các ứng dụng của bạn

BWT, những có vẻ là các API có sẵn:
- pop3.live.com , cổng 995 (SSL Bắt buộc) cho thư đến;
- smtp.live.com, cổng 25 (không có SSL) hoặc 587 (SSL) để gửi e-mail;
- API liên hệ Windows Live Messenger (kế thừa) cho phép truy cập danh bạ;
- Windows Live Messenger Connect cho phép làm bất kỳ tin nhắn nào có thể làm;
- Windows Live Messenger Mailbox properties cho phép xem số lượng thư và thư chưa đọc;

1

Không chắc chắn nếu điều này có thể giúp:

Hotmail using C#

+1

Đây là 3 đến 4 năm lỗi thời. Đã làm việc một lần, nhưng không hoạt động nữa. –

+0

Tại sao bỏ phiếu cho câu trả lời của mình cho điều đó? – Zesty

+0

Nó không hoạt động nên có thể có một lý lẽ, tuy nhiên nếu có ai muốn đưa nó trở lại 0, tôi không bận tâm! –

2

Bạn cần phải đảo ngược-eningeer giao thức DeltaSync. Sử dụng phiên bản 32-bit của MS-Mail và oSpy để nắm bắt các gói SSL + Wireshark để nắm bắt các gói http.

+0

Tại sao lại phức tạp. Sử dụng Google Chrome hoặc Firefox + Firebug và xem xét yêu cầu/phản hồi. – jgauffin

+0

@jgauffin: Điều đó sẽ phức tạp hơn việc sử dụng oSpy + Wireshark. Và nó sẽ không dễ dàng, và nó chắc chắn sẽ mất rất nhiều thời gian. –

+0

Điều đó thực sự phức tạp. Hy vọng tồi tệ nhất của tôi là sử dụng fiddler và bắt chước các yêu cầu được gửi sau đó phân tích cú pháp phản hồi với regex hoặc htmlAgilityPack, nhưng đó là thời gian và không phải là những gì tôi đang tìm kiếm. – deadlock

3

Không có cách nào chính thức để đọc Hotmail bằng cách sử dụng HTTP (S). Đã từng có DAV nhưng điều này đã được loại bỏ, đây là tuyên bố chính thức:

Continuing DAV protocol retirement

Windows Mail & Outlook Connector đều sử dụng một giao thức có tên DeltaSync mà không được ghi chép lại.

Một số người đang cố gắng để thiết kế đối chiếu nó như anh chàng này: DeltaSync HU01 decompression code released, nhưng có asolutely có đảm bảo điều này sẽ không phát triển - trong thực tế, bạn có thể chắc chắn này sẽ phát triển :-)

Vì vậy, bạn tốt hơn với POP3: Hotmail and MSN Accounts POP3/SMTP Access

3

Bạn có thể sử dụng một điều khiển WebBrowser ẩn. Và sau đó sử dụng mã nguồn để nắm bắt các tiêu đề email và tất cả. Trong that answer Tôi giải thích cách thực hiện.

Tôi nghĩ đó là cách dễ dàng nhất để thực hiện điều đó.

+0

Chuột, tôi sẽ chỉ đề nghị điều đó. – MusiGenesis

1

Thử nhìn WaTiN. Đó là một khuôn khổ mà chúng tôi sử dụng để thực hiện các thử nghiệm trên ứng dụng web của chúng tôi, bắt chước tương tác của người dùng. Chúng tôi cũng sử dụng để giao tiếp với Mailinator để kiểm tra email giả.

Tôi khá chắc chắn WaTiN có thể trợ giúp ở đây, nhưng nhược điểm là nó sẽ thực sự mở một trình duyệt cụ thể, vì vậy nếu bạn có thể sống với điều đó, đó là cách để đi.

Bạn cũng có thể thực hiện các yêu cầu web và cung cấp dữ liệu bài đăng chính xác để thực hiện đăng nhập, điều đó không thực sự khó. Sau đó, chỉ cần phân tích cú pháp nội dung của phản hồi để kiểm tra xem có email nào không.

Bạn đã từng sử dụng không gian tên System.Net.mail và mailclients để kết nối trực tiếp với máy chủ hotmail, nhưng tôi không chắc chắn nếu hotmail vẫn cho phép điều này.

2

Đây có thể không phải là những gì bạn đang tìm kiếm, nhưng bạn có thể tạo đường hầm kết nối pop3 thông qua http. Phía xuống là bạn sẽ cần một máy chủ ở đâu đó bên ngoài lan của bạn mà bạn có thể kết nối. Dưới đây là ví dụ: Pop3 over Http

Các vấn đề liên quan