JavaMail API - Máy chủ POP3

Post Office Protocol (POP) là một giao thức chuẩn Internet tầng ứng dụng được sử dụng bởi các máy khách e-mail cục bộ để lấy e-mail từ một máy chủ từ xa qua kết nối TCP / IP. POP hỗ trợ các yêu cầu tải xuống và xóa đơn giản để truy cập vào hộp thư từ xa. Máy chủ POP3 lắng nghe trên cổng 110 nổi tiếng.

Gói com.sun.mail.pop3là nhà cung cấp giao thức POP3 cho API JavaMail cung cấp quyền truy cập vào kho lưu trữ thông báo POP3. Bảng dưới đây liệt kê các lớp trong gói này:

Tên Sự miêu tả
POP3Folder Thư mục POP3 (chỉ có thể là "INBOX").
POP3Message Một tin nhắn POP3.
POP3SSLStore Kho tin nhắn POP3 sử dụng SSL.
POP3Store Một kho tin nhắn POP3.

Một số điểm cần lưu ý ở trên nhà cung cấp này:

  • Nhà cung cấp POP3 chỉ hỗ trợ một thư mục duy nhất có tên INBOX. Do những hạn chế của giao thức POP3, nhiều khả năng của JavaMail API như thông báo sự kiện, quản lý thư mục, quản lý cờ, v.v. không được phép.

  • Nhà cung cấp POP3 được truy cập thông qua các API JavaMail bằng cách sử dụng tên giao thức pop3 hoặc URL có dạng pop3: // user: password @ host: port / INBOX " .

  • POP3 không hỗ trợ cờ cố định. Ví dụ: cờ Flags.Flag.RECENT sẽ không bao giờ được đặt cho các tin nhắn POP3. Ứng dụng sẽ xác định thư nào trong hộp thư POP3 là mới .

  • POP3 không hỗ trợ phương thức Folder.expunge (). Để xóa và xóa thư, hãy đặt cờ Flags.Flag.DELETED trên thư và đóng thư mục bằng phương pháp Folder.close (true).

  • POP3 không cung cấp ngày đã nhận , vì vậy phương thức getReceiveDate sẽ trả về null.

  • Khi các tiêu đề của thư POP3 được truy cập, nhà cung cấp POP3 sử dụng lệnh TOP để tìm nạp tất cả các tiêu đề, sau đó được lưu vào bộ nhớ đệm.

  • Khi nội dung của thông báo POP3 được truy cập, nhà cung cấp POP3 sử dụng lệnh RETR để tìm nạp toàn bộ thông báo.

  • Các POP3Message.invalidate phương pháp có thể được sử dụng để vô hiệu dữ liệu được lưu trữ mà không đóng thư mục.

Nhà cung cấp giao thức POP3 hỗ trợ các thuộc tính sau, có thể được đặt trong đối tượng JavaMail Session. Các thuộc tính luôn được đặt dưới dạng chuỗi; cột Loại mô tả cách diễn giải chuỗi.

Tên Kiểu Sự miêu tả
mail.pop3.user Chuỗi Tên người dùng mặc định cho POP3.
mail.pop3.host Chuỗi Máy chủ POP3 để kết nối.
mail.pop3.port int Cổng máy chủ POP3 để kết nối, nếu phương thức connect () không chỉ định rõ ràng một cổng. Mặc định là 110.
mail.pop3.connectiontimeout int Giá trị thời gian chờ của kết nối socket tính bằng mili giây. Mặc định là thời gian chờ vô hạn.
mail.pop3.timeout int Giá trị thời gian chờ I / O của ổ cắm tính bằng mili giây. Mặc định là thời gian chờ vô hạn.
mail.pop3.rsetbeforequit boolean Gửi lệnh POP3 RSET khi đóng thư mục, trước khi gửi lệnh QUIT. Mặc định là sai.
mail.pop3.message.class Chuỗi Tên lớp của một lớp con của com.sun.mail.pop3.POP3Message. Lớp con có thể được sử dụng để xử lý (ví dụ) các tiêu đề Loại-Nội dung không chuẩn. Lớp con phải có một phương thức khởi tạo công khai có dạng MyPOP3Message (Thư mục f, int msgno) ném MessagingException.
mail.pop3.localaddress Chuỗi Địa chỉ cục bộ (tên máy chủ) để liên kết khi tạo ổ cắm POP3. Mặc định là địa chỉ được chọn bởi lớp Socket.
mail.pop3.localport int Số cổng cục bộ để liên kết khi tạo ổ cắm POP3. Mặc định là số cổng được chọn bởi lớp Socket.
mail.pop3.apop.enable boolean Nếu được đặt thành true, hãy sử dụng APOP thay vì USER / PASS để đăng nhập vào máy chủ POP3, nếu máy chủ POP3 hỗ trợ APOP. APOP gửi thông báo về mật khẩu thay vì mật khẩu văn bản rõ ràng. Giá trị mặc định là false.
mail.pop3.socketFactory Nhà máy ổ cắm Nếu được đặt thành một lớp triển khai giao diện javax.net.SocketFactory, lớp này sẽ được sử dụng để tạo các ổ cắm POP3.
mail.pop3.socketFactory.class Chuỗi Nếu được đặt, hãy chỉ định tên của một lớp triển khai giao diện javax.net.SocketFactory. Lớp này sẽ được sử dụng để tạo các ổ cắm POP3.
mail.pop3.socketFactory.fallback boolean Nếu được đặt thành true, việc không tạo được ổ cắm bằng cách sử dụng lớp nhà máy ổ cắm đã chỉ định sẽ khiến ổ cắm được tạo bằng lớp java.net.Socket. Giá trị mặc định là true.
mail.pop3.socketFactory.port int Chỉ định cổng để kết nối khi sử dụng nhà máy ổ cắm được chỉ định. Nếu không được đặt, cổng mặc định sẽ được sử dụng.
mail.pop3.ssl.enable boolean Nếu được đặt thành true, hãy sử dụng SSL để kết nối và sử dụng cổng SSL theo mặc định. Mặc định là false cho giao thức "pop3" và true cho giao thức "pop3s".
mail.pop3.ssl.checkserveridentity boolean Nếu được đặt thành true, hãy kiểm tra danh tính máy chủ như được chỉ định bởi RFC 2595. Giá trị mặc định là false.
mail.pop3.ssl.trust Chuỗi Nếu được đặt và chưa chỉ định nhà máy sản xuất ổ cắm, hãy cho phép sử dụng MailSSLSocketFactory.
Nếu được đặt thành "*", tất cả các máy chủ đều được tin cậy.
Nếu được đặt thành danh sách các máy chủ được phân tách bằng khoảng trắng, các máy chủ đó được tin cậy.
Nếu không, sự tin cậy phụ thuộc vào chứng chỉ mà máy chủ xuất trình.
mail.pop3.ssl.socketFactory Nhà máy ổ cắm SSL Nếu được đặt thành một lớp mở rộng lớp javax.net.ssl.SSLSocketFactory, lớp này sẽ được sử dụng để tạo các ổ cắm SSL POP3.
mail.pop3.ssl.socketFactory.class Chuỗi Nếu được đặt, hãy chỉ định tên của lớp mở rộng lớp javax.net.ssl.SSLSocketFactory. Lớp này sẽ được sử dụng để tạo các ổ cắm SSL POP3.
mail.pop3.ssl.socketFactory.port int Chỉ định cổng để kết nối khi sử dụng nhà máy ổ cắm được chỉ định. Nếu không được đặt, cổng mặc định sẽ được sử dụng.
mail.pop3.ssl.protocols chuỗi Chỉ định các giao thức SSL sẽ được bật cho các kết nối SSL. Giá trị thuộc tính là danh sách mã thông báo được phân tách bằng khoảng trắng được chấp nhận cho phương thức javax.net.ssl.SSLSocket.setEnabledProtocols.
mail.pop3.starttls.enable boolean Nếu đúng, hãy cho phép sử dụng lệnh STLS (nếu được máy chủ hỗ trợ) để chuyển kết nối sang kết nối được bảo vệ bởi TLS trước khi đưa ra bất kỳ lệnh đăng nhập nào. Giá trị mặc định là false.
mail.pop3.starttls.required boolean Nếu đúng, yêu cầu sử dụng lệnh STLS. Nếu máy chủ không hỗ trợ lệnh STLS hoặc lệnh không thành công, phương pháp kết nối sẽ không thành công. Giá trị mặc định là false.
mail.pop3.socks.host chuỗi Chỉ định tên máy chủ của máy chủ proxy SOCKS5 sẽ được sử dụng cho các kết nối với máy chủ thư.
mail.pop3.socks.port chuỗi Chỉ định số cổng cho máy chủ proxy SOCKS5.
mail.pop3.disabletop boolean Nếu được đặt thành true, lệnh POP3 TOP sẽ không được sử dụng để tìm nạp tiêu đề thư. Giá trị mặc định là false.
mail.pop3.forgettopheaders boolean Nếu được đặt thành true, các tiêu đề có thể đã được truy xuất bằng lệnh POP3 TOP sẽ bị quên và được thay thế bằng các tiêu đề được truy xuất như một phần của lệnh POP3 RETR. Giá trị mặc định là false.
mail.pop3.filecache.enable boolean Nếu được đặt thành true, nhà cung cấp POP3 sẽ lưu dữ liệu tin nhắn vào bộ nhớ cache trong một tệp tạm thời chứ không phải trong bộ nhớ. Tin nhắn chỉ được thêm vào bộ nhớ đệm khi truy cập nội dung tin nhắn. Tiêu đề thư luôn được lưu trong bộ nhớ (theo yêu cầu). Bộ nhớ cache của tệp bị xóa khi thư mục bị đóng hoặc JVM kết thúc. Giá trị mặc định là false.
mail.pop3.filecache.dir Chuỗi Nếu bộ đệm ẩn tệp được bật, thuộc tính này có thể được sử dụng để ghi đè thư mục mặc định được JDK sử dụng cho các tệp tạm thời.
mail.pop3.cachewriteto boolean Kiểm soát hành vi của phương thức writeTo trên đối tượng thông báo POP3. Nếu được đặt thành true và nội dung thư vẫn chưa được lưu vào bộ nhớ cache và ignoreList là null, thư sẽ được lưu vào bộ nhớ cache trước khi được viết. Nếu không, thông báo được truyền trực tiếp đến luồng đầu ra mà không được lưu vào bộ nhớ đệm. Giá trị mặc định là false.
mail.pop3.keepmessagecontent boolean Nếu thuộc tính này được đặt thành true, một tham chiếu cố định đến nội dung đã lưu trong bộ nhớ cache sẽ được giữ lại, ngăn bộ nhớ được sử dụng lại cho đến khi đóng thư mục hoặc nội dung được lưu trong bộ nhớ cache bị vô hiệu rõ ràng (sử dụng phương thức vô hiệu hóa). Giá trị mặc định là false.

Nói chung, các ứng dụng không nên sử dụng trực tiếp các lớp trong gói này. Thay vào đó, họ nên sử dụng các API được xác định bởi gói javax.mail (và các gói con). Các ứng dụng không bao giờ được tạo trực tiếp các phiên bản của POP3Store hoặc POP3Folder . Thay vào đó, họ nên sử dụng phương thức Session getStore để có được một đối tượng Store thích hợp và từ đó có được các đối tượng Thư mục.

Ví dụ để sử dụng máy chủ POP3 được trình bày trong chương Kiểm tra Email .