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 .