JavaMail API - เซิร์ฟเวอร์ POP3
Post Office Protocol (POP) เป็นโปรโตคอลมาตรฐานอินเทอร์เน็ตในชั้นแอปพลิเคชันที่ใช้โดยไคลเอนต์อีเมลภายในเพื่อดึงอีเมลจากเซิร์ฟเวอร์ระยะไกลผ่านการเชื่อมต่อ TCP / IP POP รองรับข้อกำหนดในการดาวน์โหลดและลบอย่างง่ายสำหรับการเข้าถึงกล่องจดหมายระยะไกล เซิร์ฟเวอร์ POP3 รับฟังพอร์ต 110 ที่รู้จักกันดี
แพ็คเกจ com.sun.mail.pop3เป็นผู้ให้บริการโปรโตคอล POP3 สำหรับ JavaMail API ที่ให้การเข้าถึงที่เก็บข้อความ POP3 ตารางด้านล่างแสดงรายการคลาสในแพ็คเกจนี้:
ชื่อ | คำอธิบาย |
---|---|
POP3Folder | โฟลเดอร์ POP3 (เป็นได้เฉพาะ "INBOX") |
POP3Message | ข้อความ POP3 |
POP3SSLStore | ที่เก็บข้อความ POP3 โดยใช้ SSL |
POP3Store | ที่เก็บข้อความ POP3 |
บางจุดที่ควรสังเกตเหนือผู้ให้บริการรายนี้:
ผู้ให้บริการ POP3 รองรับโฟลเดอร์เดียวที่ชื่อ INBOX. เนื่องจากข้อ จำกัด ของโปรโตคอล POP3 จึงไม่อนุญาตให้ใช้ความสามารถของ JavaMail API หลายอย่างเช่นการแจ้งเตือนเหตุการณ์การจัดการโฟลเดอร์การจัดการแฟล็ก ฯลฯ
ผู้ให้บริการที่มีการเข้าถึง POP3 ผ่าน JavaMail APIs โดยใช้ชื่อโปรโตคอลPOP3หรือ URL ของรูปแบบPOP3: // ผู้ใช้: รหัสผ่านโฮสต์ @: พอร์ต / INBOX"
POP3 ไม่รองรับแฟล็กถาวร ตัวอย่างเช่นแฟล็ก Flags.Flag.RECENTจะไม่ถูกตั้งค่าสำหรับข้อความ POP3 มันขึ้นอยู่กับการประยุกต์ใช้เพื่อตรวจสอบว่าข้อความในกล่องจดหมาย POP3 เป็นใหม่
POP3 ไม่รองรับเมธอด Folder.expunge () ในการลบและล้างข้อความให้ตั้งค่าแฟล็ก Flags.Flag.DELETED บนข้อความและปิดโฟลเดอร์โดยใช้เมธอด Folder.close (true)
POP3 ไม่ได้ระบุวันที่ที่ได้รับดังนั้นเมธอด getReceivedDate จะคืนค่า null
เมื่อเข้าถึงส่วนหัวของข้อความ POP3 ผู้ให้บริการ POP3 จะใช้คำสั่ง TOP เพื่อดึงข้อมูลส่วนหัวทั้งหมดซึ่งจะถูกแคชไว้
เมื่อเข้าถึงเนื้อหาของข้อความ POP3 ผู้ให้บริการ POP3 จะใช้คำสั่ง RETR เพื่อดึงข้อความทั้งหมด
POP3Message.invalidateวิธีสามารถนำมาใช้กับข้อมูลที่เก็บไว้ชั่วคราวโมฆะโดยไม่ต้องปิดโฟลเดอร์
ผู้ให้บริการโปรโตคอล POP3 สนับสนุนคุณสมบัติต่อไปนี้ซึ่งอาจถูกตั้งค่าในวัตถุ JavaMail Session คุณสมบัติจะถูกตั้งค่าเป็นสตริงเสมอ คอลัมน์ Type จะอธิบายวิธีการตีความสตริง
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
mail.pop3.user | สตริง | ชื่อผู้ใช้เริ่มต้นสำหรับ POP3 |
mail.pop3.host | สตริง | เซิร์ฟเวอร์ POP3 ที่จะเชื่อมต่อ |
mail.pop3.port | int | พอร์ตเซิร์ฟเวอร์ POP3 ที่จะเชื่อมต่อหากเมธอด connect () ไม่ได้ระบุอย่างชัดเจน ค่าเริ่มต้นคือ 110 |
mail.pop3.connectiontimeout | int | ค่าหมดเวลาของการเชื่อมต่อซ็อกเก็ตเป็นมิลลิวินาที ค่าเริ่มต้นคือการหมดเวลาไม่สิ้นสุด |
mail.pop3.timeout | int | ค่าการหมดเวลาของ Socket I / O หน่วยเป็นมิลลิวินาที ค่าเริ่มต้นคือการหมดเวลาไม่สิ้นสุด |
mail.pop3.rsetbeforequit | บูลีน | ส่งคำสั่ง POP3 RSET เมื่อปิดโฟลเดอร์ก่อนส่งคำสั่ง QUIT ค่าเริ่มต้นเป็นเท็จ |
mail.pop3.message.class | สตริง | ชื่อคลาสของคลาสย่อยของ com.sun.mail.pop3.POP3Message คลาสย่อยสามารถใช้เพื่อจัดการ (เช่น) ส่วนหัว Content-Type ที่ไม่ได้มาตรฐาน คลาสย่อยต้องมีตัวสร้างสาธารณะของรูปแบบ MyPOP3Message (Folder f, int msgno) พ่น MessagingException |
mail.pop3.localaddress | สตริง | ที่อยู่ภายในเครื่อง (ชื่อโฮสต์) ที่จะเชื่อมโยงเมื่อสร้างซ็อกเก็ต POP3 ค่าดีฟอลต์คือแอดเดรสที่เลือกโดยคลาส Socket |
mail.pop3.localport | int | หมายเลขพอร์ตภายในที่จะเชื่อมโยงเมื่อสร้างซ็อกเก็ต POP3 ค่าดีฟอลต์คือหมายเลขพอร์ตที่เลือกโดยคลาส Socket |
mail.pop3.apop.enable | บูลีน | หากตั้งค่าเป็นจริงให้ใช้ APOP แทน USER / PASS เพื่อล็อกอินเข้าสู่เซิร์ฟเวอร์ POP3 หากเซิร์ฟเวอร์ POP3 รองรับ APOP APOP ส่งรหัสผ่านย่อยแทนรหัสผ่านแบบข้อความชัดเจน ค่าเริ่มต้นเป็นเท็จ |
mail.pop3.socketFactory | โรงงานซ็อกเก็ต | หากตั้งค่าเป็นคลาสที่ใช้อินเทอร์เฟซ javax.net.SocketFactory คลาสนี้จะถูกใช้เพื่อสร้างซ็อกเก็ต POP3 |
mail.pop3.socketFactory.class | สตริง | หากตั้งค่าให้ระบุชื่อของคลาสที่ใช้อินเตอร์เฟส javax.net.SocketFactory คลาสนี้จะใช้ในการสร้างซ็อกเก็ต POP3 |
mail.pop3.socketFactory.fallback | บูลีน | หากตั้งค่าเป็น true ความล้มเหลวในการสร้างซ็อกเก็ตโดยใช้คลาสโรงงานของซ็อกเก็ตที่ระบุจะทำให้ซ็อกเก็ตถูกสร้างขึ้นโดยใช้คลาส java.net.Socket ค่าเริ่มต้นเป็นจริง |
mail.pop3.socketFactory.port | int | ระบุพอร์ตที่จะเชื่อมต่อเมื่อใช้โรงงานซ็อกเก็ตที่ระบุ หากไม่ได้ตั้งค่าพอร์ตเริ่มต้นจะถูกใช้ |
mail.pop3.ssl.enable | บูลีน | หากตั้งค่าเป็นจริงให้ใช้ SSL เพื่อเชื่อมต่อและใช้พอร์ต SSL ตามค่าเริ่มต้น ค่าเริ่มต้นเป็นเท็จสำหรับโปรโตคอล "pop3" และเป็นจริงสำหรับโปรโตคอล "pop3s" |
mail.pop3.ssl.checkserveridentity | บูลีน | หากตั้งค่าเป็นจริงให้ตรวจสอบข้อมูลประจำตัวเซิร์ฟเวอร์ตามที่ระบุโดย RFC 2595 ค่าดีฟอลต์คือ false |
mail.pop3.ssl.trust | สตริง | หากตั้งค่าไว้และไม่ได้ระบุโรงงานซ็อกเก็ตให้เปิดใช้งาน MailSSLSocketFactory หากตั้งค่าเป็น "*" โฮสต์ทั้งหมดจะเชื่อถือได้ หากตั้งค่าเป็นรายการโฮสต์ที่คั่นด้วยช่องว่างโฮสต์เหล่านั้นจะเชื่อถือได้ มิฉะนั้นความน่าเชื่อถือจะขึ้นอยู่กับใบรับรองที่เซิร์ฟเวอร์นำเสนอ |
mail.pop3.ssl.socketFactory | โรงงานซ็อกเก็ต SSL | หากตั้งค่าเป็นคลาสที่ขยายคลาส javax.net.ssl.SSLSocketFactory คลาสนี้จะถูกใช้เพื่อสร้างซ็อกเก็ต SSL ของ POP3 |
mail.pop3.ssl.socketFactory.class | สตริง | หากตั้งค่าให้ระบุชื่อของคลาสที่ขยายคลาส javax.net.ssl.SSLSocketFactory คลาสนี้จะใช้ในการสร้างซ็อกเก็ต SSL ของ POP3 |
mail.pop3.ssl.socketFactory.port | int | ระบุพอร์ตที่จะเชื่อมต่อเมื่อใช้โรงงานซ็อกเก็ตที่ระบุ หากไม่ได้ตั้งค่าพอร์ตเริ่มต้นจะถูกใช้ |
mail.pop3.ssl.protocols | สตริง | ระบุโปรโตคอล SSL ที่จะเปิดใช้งานสำหรับการเชื่อมต่อ SSL ค่าคุณสมบัติเป็นรายการโทเค็นที่คั่นด้วยช่องว่างซึ่งยอมรับได้สำหรับเมธอด javax.net.ssl.SSLSocket.setEnabledProtocols |
mail.pop3.starttls.enable | บูลีน | หากเป็นจริงให้เปิดใช้งานคำสั่ง STLS (หากเซิร์ฟเวอร์รองรับ) เพื่อสลับการเชื่อมต่อเป็นการเชื่อมต่อที่มีการป้องกัน TLS ก่อนที่จะออกคำสั่งล็อกอินใด ๆ ค่าเริ่มต้นเป็นเท็จ |
mail.pop3.starttls.required | บูลีน | หากเป็นจริงต้องใช้คำสั่ง STLS หากเซิร์ฟเวอร์ไม่รองรับคำสั่ง STLS หรือคำสั่งล้มเหลววิธีการเชื่อมต่อจะล้มเหลว ค่าเริ่มต้นเป็นเท็จ |
mail.pop3.socks.host | สตริง | ระบุชื่อโฮสต์ของพร็อกซีเซิร์ฟเวอร์ SOCKS5 ที่จะใช้สำหรับการเชื่อมต่อกับเมลเซิร์ฟเวอร์ |
mail.pop3.socks.port | สตริง | ระบุหมายเลขพอร์ตสำหรับพร็อกซีเซิร์ฟเวอร์ SOCKS5 |
mail.pop3.disabletop | บูลีน | หากตั้งค่าเป็นจริงคำสั่ง POP3 TOP จะไม่ถูกใช้เพื่อดึงข้อมูลส่วนหัวของข้อความ ค่าเริ่มต้นเป็นเท็จ |
mail.pop3.forgettabletopheaders | บูลีน | หากตั้งค่าเป็นจริงส่วนหัวที่อาจถูกดึงโดยใช้คำสั่ง POP3 TOP จะถูกลืมและแทนที่ด้วยส่วนหัวที่ดึงมาเป็นส่วนหนึ่งของคำสั่ง POP3 RETR ค่าเริ่มต้นเป็นเท็จ |
mail.pop3.filecache.enable | บูลีน | หากตั้งค่าเป็นจริงผู้ให้บริการ POP3 จะแคชข้อมูลข้อความในไฟล์ชั่วคราวแทนที่จะอยู่ในหน่วยความจำ ข้อความจะถูกเพิ่มลงในแคชเมื่อเข้าถึงเนื้อหาข้อความเท่านั้น ส่วนหัวของข้อความจะถูกแคชไว้ในหน่วยความจำเสมอ (ตามต้องการ) แคชไฟล์จะถูกลบออกเมื่อปิดโฟลเดอร์หรือ JVM สิ้นสุดลง ค่าเริ่มต้นเป็นเท็จ |
mail.pop3.filecache.dir | สตริง | หากเปิดใช้งานแคชของไฟล์คุณสมบัตินี้สามารถใช้เพื่อแทนที่ไดเร็กทอรีดีฟอลต์ที่ JDK ใช้สำหรับไฟล์ชั่วคราว |
mail.pop3.cachewriteto | บูลีน | ควบคุมลักษณะการทำงานของเมธอด writeTo บนวัตถุข้อความ POP3 หากตั้งค่าเป็นจริงและเนื้อหาข้อความยังไม่ถูกแคชและไม่สนใจรายการเป็นโมฆะข้อความจะถูกแคชก่อนที่จะเขียน มิฉะนั้นข้อความจะถูกสตรีมโดยตรงไปยังสตรีมเอาต์พุตโดยไม่ถูกแคช ค่าเริ่มต้นเป็นเท็จ |
mail.pop3.keepmessagecontent | บูลีน | หากคุณสมบัตินี้ถูกตั้งค่าเป็นจริงการอ้างอิงที่ยากไปยังเนื้อหาที่แคชจะถูกเก็บไว้ป้องกันไม่ให้นำหน่วยความจำกลับมาใช้จนกว่าโฟลเดอร์จะปิดหรือเนื้อหาที่แคชไว้จะไม่ถูกต้องโดยชัดแจ้ง (โดยใช้วิธีที่ไม่ถูกต้อง) ค่าเริ่มต้นเป็นเท็จ |
โดยทั่วไปแอปพลิเคชันไม่ควรใช้คลาสในแพ็คเกจนี้โดยตรง ควรใช้ API ที่กำหนดโดยแพ็คเกจjavax.mail (และแพ็กเกจย่อย) แทน แอปพลิเคชันไม่ควรสร้างอินสแตนซ์ของPOP3StoreหรือPOP3Folderโดยตรง พวกเขาควรใช้เมธอดเซสชัน getStore เพื่อรับอ็อบเจ็กต์ Store ที่เหมาะสมและจากการรับอ็อบเจ็กต์โฟลเดอร์
ตัวอย่างการใช้งานไปยังเซิร์ฟเวอร์ POP3 จะแสดงให้เห็นในบทตรวจสอบอีเมล