ทำงานกับข้อความและฟิลเตอร์ของ Gmail
เริ่มต้นใช้งาน IGmailClient
Aspose.Email สำหรับ .NET มีการสนับสนุนที่แข็งแกร่งสำหรับการโต้ตอบกับ Gmail ผ่าน IGmailClient อินเทอร์เฟซ คุณสามารถจัดการข้อความและฟิลเตอร์ในกล่องจดหมาย Gmail — รวมถึงรายการ ดึง ส่ง เพิ่ม และลบอีเมล รวมถึงจัดการฟิลเตอร์แบบกำหนดเองสำหรับการจัดประเภทอัตโนมัติ
เพื่อใช้ฟีเจอร์ของ Gmail คุณต้องเริ่มต้นอินสแตนซ์ IGmailClient ด้วย clientId, clientSecret, refreshToken และที่อยู่อีเมลเป้าหมาย ตัวอย่างทั้งหมดด้านล่างสมมติว่าตั้งค่าไว้แล้ว
using (IGmailClient client = GmailClient.GetInstance(clientId, clientSecret, refreshToken, email))
{
// Work with messages or filters
}
รายการข้อความในกล่องจดหมาย Gmail
ดึงข้อความทั้งหมดจากกล่องจดหมายแบบน้ำหนักเบา GmailMessageInfo วัตถุ ตัวอย่างโค้ดต่อไปนี้แสดงวิธีดึงรายการข้อความที่มีในกล่องจดหมาย Gmail โดยไม่โหลดเนื้อหาเต็ม:
var messages = client.ListMessages();
ดึงและลบข้อความ Gmail
ตัวอย่างโค้ดด้านล่างแสดงวิธีอ่านและลบข้อความจาก Gmail โดยใช้ตัวระบุที่เป็นเอกลักษณ์:
- ใช้ client.ListMessages() เพื่อดึงรายการข้อความ.
- ตั้งค่าลูป for เพื่อวนรอบผ่านสามข้อความแรก.
- ภายในลูป ดึงแต่ละข้อความโดยใช้ client.FetchMessage(messages[i].Id).
- แสดงหัวข้อและเนื้อหาของข้อความที่ดึงมา.
- เรียก client.DeleteMessage(messages[i].Id, true) เพื่อลบข้อความและย้ายไปถังขยะ.
- ยืนยันการลบด้วยข้อความ.
var messages = client.ListMessages();
for (int i = 0; i < 3; i++)
{
var msg = client.FetchMessage(messages[i].Id);
Console.WriteLine($"Message {i + 1}: Subject - {msg.Subject}, Body - {msg.Body}");
client.DeleteMessage(messages[i].Id, true);
Console.WriteLine($"Message {i + 1} moved to trash.");
}
ส่งข้อความผ่าน Gmail
สร้างและส่งอีเมลรวมทั้งไฟล์แนบโดยใช้เมธอด SendMessage() ตัวอย่างโค้ดด้านล่างจะแสดงวิธีส่งอีเมลผ่าน Gmail พร้อมไฟล์แนบ:
MailMessage message = new MailMessage("sender@example.com", "recipient@example.com", "Weekly Report", "Attached is the weekly report.");
string attachmentPath = Path.Combine(TestUtil.GetTestDataPath(), "report.pdf");
message.Attachments.Add(new Attachment(attachmentPath));
string messageId = client.SendMessage(message);
Console.WriteLine($"Message with attachment sent! ID: {messageId}");