ส่งอีเมลและส่งต่อข้อความผ่าน SMTP
นี้ SmtpClient คลาสใน Aspose.Email สำหรับ Python ผ่าน .NET ให้ส่วนต่อประสานที่แข็งแกร่งและยืดหยุ่นสำหรับส่งอีเมลโดยใช้ Simple Mail Transfer Protocol (SMTP) เป็นจุดเริ่มต้นหลักสำหรับนักพัฒนาที่ต้องการส่งข้อความอีเมลภายในแอปพลิเคชันของตน.
คุณลักษณะสำคัญของ SmtpClient คลาสรวม:
-
การจัดส่งอีเมลผ่าน SMTP: เปิดใช้งานการส่งอีเมลโดยตรงผ่านเซิร์ฟเวอร์ SMTP.
-
ตัวเลือกการจัดส่งแบบทางเลือก: รองรับวิธีการจัดส่งเพิ่มเติม เช่น การบันทึกข้อความลงระบบไฟล์หรือเขียนลงคิวข้อความ.
-
การทำงานแบบซิงโครนัสและอะซิงโครนัส:
-
โหมดแบบซิงโครนัส: ใช้วิธีการ Send เพื่อบล็อกเธรดปัจจุบันจนกว่าอีเมลจะถูกส่งเต็มที่.
-
โหมด Asynchronous: ใช้เมธอด SendAsync เพื่อส่งข้อความในพื้นหลัง ทำให้แอปพลิเคชันตอบสนองได้ต่อเนื่อง.
-
-
รองรับ TNEF: อนุญาตให้ส่งข้อความในรูปแบบ Transport Neutral Encapsulation Format (TNEF) เพื่อความเข้ากันได้กับคุณสมบัติของ Microsoft Outlook.
บทความนี้ครอบคลุมฟังก์ชันหลักทั้งหมดที่มีให้ผ่าน SmtpClient คลาสที่แสดงวิธีส่งข้อความอีเมลมาตรฐานและขั้นสูงโดยควบคุมการกำหนดค่าและการจัดส่งอย่างเต็มที่.
ส่งอีเมลแบบ synchronous
นี้ SmtpClient.send เมธอดนี้อนุญาตให้ส่งข้อความอีเมลแบบ synchronous วิธีนี้เป็นประโยชน์เมื่อแอปพลิเคชันต้องการยืนยันการส่งก่อนดำเนินการต่อ.
เพื่อส่งอีเมลข้อความธรรมดาแบบ synchronous ด้วย Aspose.Email for Python ผ่าน .NET ให้ใช้ขั้นตอนและตัวอย่างโค้ดด้านล่าง:
- สร้าง MailMessage อินสแตนซ์และตั้งผู้ส่ง ผู้รับ(หลายคน) เรื่อง และเนื้อหา.
- กำหนดค่า SmtpClient ด้วยโฮสต์เซิร์ฟเวอร์ พอร์ต ชื่อผู้ใช้ และรหัสผ่าน.
- เรียกใช้
sendวิธีการบน SmtpClient อินสแตนซ์และส่งค่าใน MailMessage อ็อบเจ็กต์.
# Create email
eml = ae.MailMessage()
eml.subject = "Message with Plain Text Body"
eml.body = "This is text body."
eml.from_address = "from@gmail.com"
eml.to.append(ae.MailAddress("to@gmail.com", "Recipient 1"))
# Configure SmtpClient object
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO
# Send email
client.send(eml)
ส่งไฟล์ EML ที่เตรียมไว้ล่วงหน้าผ่าน SMTP
หากคุณต้องการส่งข้อความอีเมลที่ได้จัดทำและบันทึกเป็นรูปแบบ EML แล้ว คุณสามารถโหลดและส่งโดยใช้โปรแกรมด้วย Aspose.Email สำหรับ Python ผ่าน .NET ได้.
ส่วนโค้ดต่อไปนี้พร้อมขั้นตอนแสดงวิธีส่งไฟล์ EML โดยใช้ SmtpClient:
- โหลดไฟล์ EML ด้วย MailMessage.load เมธอด.
- สร้างและกำหนดค่าตัวอย่างของ SmtpClient, โดยระบุโฮสต์เซิร์ฟเวอร์ SMTP, ชื่อผู้ใช้และรหัสผ่านสำหรับการตรวจสอบสิทธิ์.
- เรียกใช้
sendวิธีการบน SmtpClient อินสแตนซ์และส่งผ่านข้อความที่โหลดแล้ว.
import aspose.email as ae
message = ae.MailMessage.load("test.eml")
# Send this message using SmtpClient
client = ae.clients.SmtpClient("host", "username", "password")
client.send(message)
ส่งอีเมลข้อความธรรมดา
คุณสามารถส่งอีเมลข้อความธรรมดาโดยใช้ Aspose.Email โดยระบุส่วนข้อความของเมลเป็นข้อความทั่วไปได้ โดย MailMessage.body คุณสมบัตินี้ใช้กำหนดเนื้อหา ในขณะที่ SmtpClient คลาสจัดการกระบวนการส่ง.
ส่วนโค้ดต่อไปนี้พร้อมขั้นตอนจะแสดงวิธีส่งอีเมลข้อความธรรมดา:
- สร้างอินสแตนซ์ของ MailMessage คลาส.
- ตั้งค่าที่อยู่อีเมลผู้ส่งและผู้รับ.
- กำหนดเนื้อหาแบบข้อความธรรมดาให้กับคุณสมบัติ body.
- สร้างอินสแตนซ์ของ SmtpClient คลาสพร้อมรายละเอียดเซิร์ฟเวอร์และข้อมูลประจำตัว.
- ส่งอีเมลโดยใช้
sendเมธอด.
ส่งอีเมล HTML
Aspose.Email สำหรับ Python ผ่าน .NET อนุญาตให้คุณส่งอีเมลที่มีเนื้อหาแบบ HTML โดยใช้ MailMessage คลาส โดยกำหนดเนื้อหา HTML ให้กับ html_body คุณสมบัติและการตั้งค่า is_body_html เป็น True คุณสามารถสร้างข้อความที่มีรูปแบบและสไตล์ที่หลากหลาย.
ตัวอย่างโค้ดต่อไปนี้พร้อมขั้นตอนแสดงวิธีส่งอีเมล HTML:
- สร้างอินสแตนซ์ของ MailMessage คลาส.
- ตั้งค่าที่อยู่อีเมลผู้ส่งและผู้รับ.
- ตั้งค่า
is_body_html = Trueเพื่อระบุรูปแบบ HTML. - กำหนดเนื้อหา HTML ของคุณให้กับ
html_bodyคุณสมบัติ. - สร้างและกำหนดค่า SmtpClient อินสแตนซ์
- ใช้
sendวิธีการส่งข้อความ.
หมายเหตุ: แม้ว่าตัวอย่างนี้ใช้ HTML พื้นฐาน คุณสามารถรวมโครงสร้าง HTML ที่ซับซ้อนได้เพื่อสร้างเค้าโครงอีเมลที่ตอบสนองและมีแบรนด์.
ส่งอีเมล HTML พร้อมข้อความสำรองแบบข้อความธรรมดา
เมื่อส่งอีเมล HTML ควรรวมเวอร์ชันข้อความธรรมดาเพื่อผู้รับที่ไคลเอนต์อีเมลไม่รองรับ HTML Aspose.Email สำหรับ Python ผ่าน .NET มีให้ AlternateView คลาสเพื่อรวมเนื้อหา HTML และข้อความธรรมดาไว้ในข้อความเดียว ส่งเสริมความเข้ากันได้และประสบการณ์ผู้ใช้.
ตัวอย่างโค้ดต่อไปนี้พร้อมขั้นตอนแสดงวิธีส่งอีเมลที่มีเนื้อหาข้อความสำรอง:
- สร้างอินสแตนซ์ของ MailMessage คลาส.
- ตั้งค่าที่อยู่อีเมลผู้ส่งและผู้รับ.
- กำหนดเนื้อหา HTML ให้กับ
html_bodyคุณสมบัติและตั้งค่าis_body_html = True. - สร้าง AlternateView แบบข้อความธรรมดาโดยใช้ create_alternate_view_from_string.
- เพิ่มมุมมองสำรองไปยัง
alternate_viewsคอลเลกชันของ MailMessage. - สร้างและกำหนดค่า SmtpClient อินสแตนซ์
- ส่งอีเมลโดยใช้
sendเมธอด.
วิธีส่งอีเมลจำนวนมาก
การส่งอีเมลจำนวนมากเกี่ยวข้องกับการส่งหลายข้อความพร้อมกัน — แต่ละข้อความอาจส่งถึงผู้รับคนละคน Aspose.Email มีความสามารถนี้โดยใช้ SmtpClient คลาส.
ตัวอย่างโค้ดด้านล่างแสดงวิธีส่งชุดอีเมลในครั้งเดียว:
- สร้างอินสแตนซ์ของ SmtpClient คลาสและกำหนดค่าโฮสต์ พอร์ต ข้อมูลประจำตัว และการตั้งค่าความปลอดภัยของมัน.
- สร้างหลาย MailMessage อินสแตนซ์ — แต่ละอันเป็นข้อความอีเมลที่แยกกัน.
- ระบุผู้ส่ง ผู้รับ เรื่อง และเนื้อหาข้อความสำหรับแต่ละอีเมล.
- เพิ่มทั้งหมด MailMessage ออบเจกต์ไปยัง MailMessageCollection.
- เรียกใช้
sendเมธอดของ SmtpClient คลาส โดยส่งผ่าน MailMessageCollection เป็นอาร์กิวเมนต์.
import aspose.email as ae
from aspose.email.clients import SmtpClient, SecurityOptions
from aspose.email import MailMessage, MailMessageCollection
# Create individual email messages
message1 = MailMessage("from@gmail.com", "to1@gmail.com", "Bulk Email - Message 1", "Hello, this is message 1.")
message2 = MailMessage("from@gmail.com", "to2@gmail.com", "Bulk Email - Message 2", "Hello, this is message 2.")
message3 = MailMessage("from@gmail.com", "to3@gmail.com", "Bulk Email - Message 3", "Hello, this is message 3.")
# Add messages to a collection
many_messages = MailMessageCollection()
many_messages.append(message1)
many_messages.append(message2)
many_messages.append(message3)
# Configure SMTP client
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO
# Send all messages in bulk
client.send(many_messages)
ส่งอีเมลด้วยการสนับสนุนหลายการเชื่อมต่อ
Aspose.Email สำหรับ Python ผ่าน .NET อนุญาตให้คุณใช้การเชื่อมต่อหลาย ๆ พร้อมกันเมื่อส่งอีเมลผ่าน SmtpClient คลาส คุณลักษณะนี้สามารถช่วยเพิ่มประสิทธิภาพเมื่อส่งอีเมลจำนวนมากโดยกระจายภาระงานไปยังหลายการเชื่อมต่อ อย่างไรก็ตาม การเปิดใช้งานโหมดการเชื่อมต่อหลายเส้นไม่ได้รับประกันว่าจะเพิ่มประสิทธิภาพในทุกสถานการณ์ — ขึ้นอยู่กับการตั้งค่าเซิร์ฟเวอร์และสภาพเครือข่าย.
คุณสมบัติหลัก:
-
use_multi_connection: เปิดหรือปิดโหมดการเชื่อมต่อหลายเส้นสำหรับไคลเอนต์ SMTP. -
connections_quantity: ระบุจำนวนการเชื่อมต่อที่จะเปิดเมื่อเปิดใช้งานโหมดการเชื่อมต่อหลายเส้น.
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีเปิดโหมดการเชื่อมต่อหลายเส้น:
- สร้างและกำหนดค่าตัวอย่างของ SmtpClient.
- ตั้งค่ารายละเอียดเซิร์ฟเวอร์ เช่น โฮสต์ พอร์ต ชื่อผู้ใช้ รหัสผ่าน และการเข้ารหัส.
- เปิดโหมดการเชื่อมต่อหลายเส้นโดยตั้งค่า
use_multi_connection. - ระบุจำนวนการเชื่อมต่อด้วย
connections_quantity.
import aspose.email as ae
client = ae.clients.smtp.SmtpClient
client.host = "<HOST>"
client.username = "<USERNAME>"
client.password = "<PASSWORD>"
client.port = 587
client.supported_encryption = ae.clients.base.EncryptionProtocols.TLS
client.security_options = ae.clients.SecurityOptions.SSL_EXPLICIT
client.connections_quantity = 5
client.use_multi_connection = ae.clients.MultiConnectionMode.ENABLE
client.send(messages)
ส่งอีเมลในรูปแบบ TNEF
Transport Neutral Encapsulation Format (TNEF) คือรูปแบบอีเมลที่เป็นกรรมสิทธิ์ที่ใช้โดย Microsoft Outlook และ Exchange เพื่อคงรูปแบบที่หลากหลาย วัตถุฝัง และฟีเจอร์พิเศษเช่นปุ่มโหวต ลูกค้าอีเมลมาตรฐานอาจไม่คงรูปแบบนี้เมื่อใช้ข้อความแบบ MIME ธรรมดา.
Aspose.Email สำหรับ Python ผ่าน .NET รองรับการส่งอีเมลในรูปแบบ TNEF เพื่อให้การจัดรูปแบบและฟีเจอร์ขั้นสูงทั้งหมดคงอยู่ การทำเช่นนี้ทำได้โดยเปิดใช้งาน use_tnef คุณสมบัติของ SmtpClient คลาส.
ตัวอย่างโค้ดต่อไปนี้พร้อมขั้นตอนแสดงวิธีส่งอีเมล TNEF:
- โหลดข้อความ EML ที่มีอยู่หรือสร้างใหม่โดยใช้ MailMessage คลาส.
- ตั้งค่าที่อยู่ผู้ส่งและผู้รับ.
- เปิดการฟอร์แมต TNEF โดยตั้งค่า
use_tnef = Trueบน SmtpClient อินสแตนซ์ - ส่งข้อความโดยใช้
send()เมธอด.
ส่งคำขอประชุมผ่านอีเมล
Microsoft Outlook และไคลเอนต์อีเมลที่รองรับปฏิทินอื่น ๆ เช่น IBM Lotus Notes อนุญาตให้ผู้ใช้จัดการนัดหมายโดยตรงจากกล่องขาเข้า เมื่อผู้ใช้ได้รับคำเชิญประชุม พวกเขาสามารถตอบรับหรือปฏิเสธได้โดยตรงในไคลเอนต์อีเมล ด้วย Aspose.Email สำหรับ Python ผ่าน .NET นักพัฒนาสามารถสร้างและส่งคำเชิญประชุมเหล่านี้โดยอัตโนมัติตามมาตรฐาน iCalendar (RFC 2445).
วิธีส่งคำเชิญประชุมผ่านอีเมล
Aspose.Email มีการสนับสนุนในตัวสำหรับการสร้างและส่งคำขอการประชุม iCalendar เป็นส่วนหนึ่งของอีเมล คำขอเหล่านี้เข้ากันได้กับไคลเอนต์ปฏิทินที่นิยมและอนุญาตให้ผู้รับตอบรับคำเชิญได้อย่างง่ายดาย.
|คำขอประชุม iCalendar ส่งทางอีเมล| | :- | |
|
ส่วนโค้ดต่อไปนี้แสดงวิธีส่งคำขอผ่านอีเมล:
- สร้าง MailMessage อินสแตนซ์
- ระบุที่อยู่อีเมลของผู้ส่งและผู้รับ.
- สร้าง Appointment ออบเจกต์ที่มีตำแหน่ง เวลาเริ่ม/สิ้นสุด ผู้ส่ง และผู้รับ.
- ตั้งค่าสรุปและคำอธิบายของการนัดหมาย.
- แนบการนัดหมายเข้ากับอีเมลโดยใช้
add_alternate_view(). - ส่งอีเมลโดยใช้ SmtpClient.
รองรับ iCalendar สำหรับ IBM Lotus Notes
Aspose.Email ใช้รูปแบบ iCalendar (RFC 2445) ซึ่งทำให้คำขอการประชุมของคุณเข้ากันได้กับ Microsoft Outlook, IBM Lotus Notes และไคลเอนต์อื่น ๆ ที่รองรับมาตรฐานเดียวกัน กระบวนการเดียวกันสามารถใช้ได้ไม่ว่าผู้รับจะใช้แพลตฟอร์มใด.
ส่งต่ออีเมลโดยใช้ SMTP Client
การส่งต่ออีเมลเป็นงานทั่วไปในการสื่อสารดิจิทัล มักใช้เพื่อแชร์ข้อความที่รับกับผู้อื่น Aspose.Email สำหรับ Python ผ่าน .NET อนุญาตให้นักพัฒนาส่งต่ออีเมลโดยอัตโนมัติด้วย SmtpClient คลาส วิธีการ forward ช่วยให้ส่งต่ออีเมลที่บันทึกหรือรับไปยังผู้รับใหม่โดยไม่ต้องเกี่ยวข้องกับผู้ส่งต้นฉบับ.
ด้านล่างเป็นตัวอย่างโค้ดที่แสดงวิธีส่งต่ออีเมลโดยใช้ MailMessage คลาส:
ส่งต่อไฟล์ EML โดยไม่โหลดเข้าสู่ MailMessage
Aspose.Email ยังรองรับการส่งต่อไฟล์ .eml โดยตรงโดยไม่ต้องโหลดเข้าไปใน MailMessage ออบเจกต์ สิ่งนี้มีประโยชน์เป็นพิเศษในกรณีที่ต้องลดการใช้หน่วยความจำของระบบ.
ตัวอย่างโค้ดด้านล่างแสดงวิธีส่งต่อไฟล์ EML โดยตรง:
import aspose.email as ae
client = ae.clients.smtp.SmtpClient(host, smtp_port, username, password, ae.clients.SecurityOptions.AUTO)
file = open("test.eml", "rb")
client.forward(sender, recipients, file)