การดึงอีเมลจากเซิร์ฟเวอร์ POP3
บันทึกอีเมลลงดิสก์โดยไม่ทำการแปลง
เพื่อดาวน์โหลดข้อความอีเมลจากเซิร์ฟเวอร์ POP3 โดยไม่ทำการแปลง คุณสามารถใช้ save_message เมธอดของ Aspose.Email Pop3Client คลาส ตัวอย่างโค้ดต่อไปนี้แสดงวิธีบันทึกข้อความโดยใช้หมายเลขลำดับ ในกรณีนี้คือหมายเลข 1. The save_message เมธอดเก็บรูปแบบ EML ดั้งเดิมโดยไม่ทำการแปลง:
แปลงข้อความก่อนบันทึก
คุณสามารถดึงข้อความอีเมลเฉพาะโดยใช้ fetch_message เมธอดของ Pop3Client คลาส ระบุหมายเลขลำดับที่ต้องการสำหรับอ็อบเจกต์ไคลเอนท์ ตัวอย่างโค้ดต่อไปนี้แสดงวิธีดึงข้อความเฉพาะและบันทึกโดยใช้หัวเรื่องเป็นชื่อไฟล์โดยเรียก save เมธอดบนอ็อบเจกต์ msg:
import aspose.email as ae
client = ae.clients.pop3.Pop3Client("host", 995, "username", "password", ae.clients.SecurityOptions.AUTO)
# Fetch the message by its sequence number and Save the message using its subject as the file name
msg = client.fetch_message(1)
msg.save("first-message_out.eml", ae.SaveOptions.default_eml)
กรองอีเมลจากเซิร์ฟเวอร์ตามเกณฑ์
Aspose.Email Pop3Client class ให้ list_messages() เมธอดที่ดึงข้อความทั้งหมดจากกล่องจดหมาย เพื่อดึงเฉพาะข้อความที่ตรงกับเงื่อนไขบางอย่าง ให้ใช้เมธอดโอเวอร์โหลด list_messages(query) เมธอดที่รับ MailQuery เป็นอาร์กิวเมนต์. MailQuery คลาสนี้ให้คุณสมบัติต่าง ๆ สำหรับระบุเงื่อนไขการค้นหา เช่น วันที่, หัวเรื่อง, ผู้ส่ง, ผู้รับ เป็นต้น
เพื่อสร้างนิพจน์การค้นหา ให้ใช้ MailQueryBuilder คลาส ขั้นแรกกำหนดเงื่อนไขและข้อจำกัดทั้งหมดที่จำเป็น แล้วเติมวัตถุ MailQuery ด้วยคิวรีที่สร้างโดย MailQueryBuilder. Pop3Client ใช้วัตถุ MailQuery นี้เพื่อดึงข้อมูลที่กรองจากเซิร์ฟเวอร์
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีกรองและดึงอีเมลจากบัญชี Gmail ตามเกณฑ์ต่าง ๆ รวมถึงหัวเรื่อง, วันที่ภายใน, ผู้ส่ง, และผู้รับ นอกจากนี้ยังแสดงการกรองแยกแยะตัวพิมพ์ใหญ่‑เล็กและวิธีสร้างคิวรีที่ซับซ้อนอย่างมีประสิทธิภาพ
- สร้างการเชื่อมต่อกับเซิร์ฟเวอร์ Gmail POP3 ด้วย Pop3Client คลาสที่มีที่อยู่เซิร์ฟเวอร์, พอร์ต, ชื่อผู้ใช้, และรหัสผ่านที่ระบุ ตัวเลือกความปลอดภัยตั้งค่าเป็น AUTO เพื่อการเชื่อมต่อที่ปลอดภัย
- สร้างอินสแตนซ์ของ MailQueryBuilder เพื่อสร้างเกณฑ์การค้นหาสำหรับการกรองอีเมล
- การกรองตาม หัวเรื่อง:
- อีเมลที่มีคำ "Newsletter" ในหัวเรื่องถูกระบุเป็นเงื่อนไขฟิลเตอร์
- การกรองโดย วันที่ภายใน:
- กำหนดฟิลเตอร์สำหรับอีเมลที่ได้รับในปัจจุบัน
- เพิ่มฟิลเตอร์เพิ่มเติมเพื่อดึงอีเมลที่ได้รับในสัปดาห์ที่ผ่านมา
- การกรองโดย ผู้ส่ง:
- ฟิลเตอร์ถูกนำไปใช้เพื่อค้นหาอีเมลจากที่อยู่อีเมลเฉพาะ (saqib.razzaq@127.0.0.1) และรวมอีเมลจากโดเมนเฉพาะ (SpecificHost.com)
- การกรองโดย ผู้รับ:
- ระบุฟิลเตอร์เพื่อค้นหาอีเมลที่ส่งถึงผู้รับเฉพาะ
- รวมคิวรี ด้วยโอเปอเรเตอร์ OR เพื่อค้นหาอีเมลที่ตรงกับหัวเรื่องที่กำหนดหรือส่งจากที่อยู่อีเมลเฉพาะ
- การกรองแยกแยะตัวพิมพ์ใหญ่‑เล็ก:
- ระบุฟิลเตอร์แยกแยะตัวพิมพ์ใหญ่‑เล็กสำหรับหัวเรื่องที่มีคำ "Newsletter" (แสดงด้วยพารามิเตอร์ True)
- รายการข้อความ:
- เมธอด list_messages() ถูกเรียกพร้อมคิวรีที่สร้างขึ้นเพื่อดึงข้อความที่กรองจากกล่องจดหมาย
- สุดท้าย พิมพ์จำนวนของข้อความที่กรองแล้ว
กรองอีเมลตามวันที่
เพื่อดึงข้อความตามวันที่ส่ง ใช้ internal_date คุณสมบัติตามที่แสดงในตัวอย่างโค้ดด้านล่าง:
import aspose.email as ae
from datetime import datetime
builder = ae.tools.search.MailQueryBuilder()
builder.internal_date.on(datetime.now())
กรองอีเมลตามช่วงวันที่
เพื่อดึงข้อความภายในช่วงวันที่ ใช้เดียวกัน internal_date คุณสมบัติที่ระบุช่วงวันที่ตามที่แสดงในตัวอย่างโค้ดด้านล่าง:
import aspose.email as ae
from datetime import datetime, timedelta
builder = ae.tools.search.MailQueryBuilder()
# Emails that arrived in last 7 days
builder.internal_date.before(datetime.now())
builder.internal_date.since(datetime.today() - timedelta(days=7))
กรองอีเมลตามผู้ส่ง
เพื่อดึงข้อความจากผู้ส่งเฉพาะ ใช้ from_address คุณสมบัติตามที่แสดงในตัวอย่างโค้ดด้านล่าง:
import aspose.email as ae
builder = ae.tools.search.MailQueryBuilder()
builder.from_address.contains("saqib.razzaq@127.0.0.1")
กรองอีเมลตามโดเมน
เพื่อดึงข้อความจากโดเมนเฉพาะ ใช้ from_address คุณสมบัติตามที่แสดงในตัวอย่างโค้ดด้านล่าง:
import aspose.email as ae
builder = ae.tools.search.MailQueryBuilder()
builder.from_address.contains("SpecificHost.com")
กรองอีเมลตามผู้รับ
เพื่อดึงข้อความไปยังผู้รับเฉพาะ ใช้ to คุณสมบัติตามที่แสดงในตัวอย่างโค้ดด้านล่าง:
import aspose.email as ae
builder = ae.tools.search.MailQueryBuilder()
builder.to.contains("recipient")
สร้างคำค้นหาซับซ้อน
บางครั้งจำเป็นต้องตอบสนองมากกว่าหนึ่งคำค้นหา Aspose.Email ทำให้สามารถรวมคำค้นหาในหลายคำสั่งได้ สร้าง MailQueryBuilder อ็อบเจกต์และใช้คุณสมบัติของมันเพื่อสร้างคิวรีเฉพาะ
รวมคิวรีด้วย AND
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีรวมคิวรีด้วยโอเปอเรเตอร์ AND:
import aspose.email as ae
from datetime import datetime, timedelta
builder = ae.tools.search.MailQueryBuilder()
builder.internal_date.before(datetime.now())
builder.internal_date.since(datetime.today() - timedelta(days=7))
builder.from_address.contains("SpecificHost.com")
รวมคิวรีด้วย OR
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีรวมคิวรีด้วยโอเปอเรเตอร์ OR:
import aspose.email as ae
builder = ae.tools.search.MailQueryBuilder()
builder.either(builder.subject.contains("test"), builder.from_address.contains("noreply@host.com"))
ใช้ฟิลเตอร์แยกแยะตัวพิมพ์ใหญ่‑เล็ก
API ยังให้ความสามารถในการกรองอีเมลจากกล่องจดหมายตามเกณฑ์ที่แยกแยะตัวพิมพ์ใหญ่‑เล็ก วิธีต่อไปนี้ของ StringComparisonField คลาสให้ความสามารถในการค้นหาอีเมลโดยระบุแฟล็กแยกแยะตัวพิมพ์ใหญ่‑เล็ก:
Method Aspose.Email.StringComparisonField.contains(value, ignore_case) Method Aspose.Email.StringComparisonField.equals(value, ignore_case) Method Aspose.Email.StringComparisonField.not_contains(value, ignore_case) Method Aspose.Email.StringComparisonField.not_equals(value, ignore_case)
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีนำความสามารถนี้ไปใช้ในโครงการของคุณ:
import aspose.email as ae
builder = ae.tools.search.MailQueryBuilder()
builder.from_address.contains("noreply@host.com", True)