שליחת הודעות דוא"ל והעברת הודעות דרך SMTP

ה SmtpClient מחלקה ב‑Aspose.Email for Python via .NET מספקת ממשק חזק וגמיש לשליחת דוא"לים באמצעות פרוטוקול Simple Mail Transfer Protocol (SMTP). זו הכניסה הראשית למפתחים שמעוניינים להעביר הודעות דוא"ל באפליקציות שלהם.

המאפיינים המרכזיים של SmtpClient הכללה של מחלקה:

  • משלוח דוא"ל באמצעות SMTP: מאפשר שליחת דוא"ל ישירות דרך שרת SMTP.

  • אפשרויות משלוח חלופיות: תומך במתודות משלוח נוספות כגון שמירת הודעות במערכת הקבצים או כתיבה לתור הודעות.

  • פעולות סינכרוניות וכן אסינכרוניות:

    • מצב סינכרוני: השתמש בשיטות Send כדי לחסום את תהליך הריצה הנוכחי עד שהדוא"ל מועבר במלואו.

    • מצב אסינכרוני: השתמש במתודות SendAsync כדי לשלוח הודעות ברקע, ולאפשר ליישום להישאר מגיב.

  • תמיכה ב‑TNEF: מאפשרת שליחת הודעות בפורמט Transport Neutral Encapsulation Format (TNEF) לתאימות עם תכונות של Microsoft Outlook.

מאמר זה מכסה את כל הפונקציונליות המרכזיות הזמינות דרך ה- SmtpClient מחלקה, המדגימה כיצד לשלוח הודעות דוא"ל סטנדרטיות ומתקדמות עם שליטה מלאה על תצורה ומשלוח.

שליחת הודעות דוא"ל סינכרונית

ה SmtpClient.send מתודה זו מאפשרת לשלוח הודעת דוא"ל בצורה סינכרונית. גישה זו מועילה כאשר היישום צריך לוודא את ההגעה לפני המשך.

כדי לשלוח הודעת דוא"ל בטקסט פשוט בצורה סינכרונית באמצעות Aspose.Email for Python דרך .NET, השתמש בצעדים ובדוגמת הקוד שלמטה:

  1. צור MailMessage מופע וקבע את השולח, הנמענים, הנושא והגוף.
  2. הגדר את ה- SmtpClient עם שם השרת, פתחה, שם משתמש וסיסמה.
  3. הפעל את 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 for Python via .NET.

קטע הקוד הבא עם שלבים מציג כיצד לשלוח קובץ EML באמצעות SmtpClient:

  1. טען את קובץ ה‑EML באמצעות ה‑ MailMessage.load שיטה.
  2. צור והגדר מופע (instance) של SmtpClient, המספקים את כתובת ה‑SMTP, שם המשתמש והסיסמה לאימות.
  3. הפעל את send שיטה על ה SmtpClient המאגר (instance) והעבר את ההודעה שהוטענה.
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 המחלקה מטפלת בתהליך השליחה.

קטע הקוד הבא עם שלבים מציג כיצד לשלוח דוא״ל בטקסט פשוט:

  1. צור מופע של MailMessage מחלקה.
  2. הגדר את כתובות הדוא"ל של השולח והמקבל.
  3. הקצה את תוכן הטקסט הפשוט למאפיין body.
  4. צור מופע של SmtpClient מחלקה עם פרטי השרת והאישורים.
  5. שלח את האימייל באמצעות send שיטה.

שלח דוא"ל HTML

Aspose.Email for Python via .NET מאפשר לך לשלוח דוא"לים עם גוף בפורמט HTML באמצעות ה‑ MailMessage במחלקה. על‑ידי הקצאת תוכן HTML ל‑ html_body מאפיין והגדרה is_body_html ל‑True, תוכל ליצור הודעות עשירות ומעוצבות.

דוגמת הקוד הבאה עם שלבים מציגה כיצד לשלוח דוא״ל HTML:

  1. צור מופע של MailMessage מחלקה.
  2. הגדר את כתובות הדוא"ל של השולח והמקבל.
  3. הגדר is_body_html = True כדי לציין פורמט HTML.
  4. הקצה את תוכן ה‑HTML שלך ל‑ html_body מאפיין.
  5. צור והגדר את ה‑ SmtpClient מופע.
  6. השתמש ב- send שיטה להעברת ההודעה.

הערה: בעוד דוגמה זו משתמשת ב‑HTML בסיסי, אתה יכול לשלב מבנים מורכבים יותר של HTML ליצירת פריסות דוא"ל רספונסיביות וממותגות.

שלח דוא"ל HTML עם חלופה בטקסט רגיל

כאשר שולחים דוא"לים ב‑HTML, מומלץ לכלול גרסה בטקסט פשוט עבור נמענים שהלקוח שלהם אינו תומך ב‑HTML. Aspose.Email for Python via .NET מציע את ה‑ AlternateView מחלקה לכלול גם תוכן HTML וגם טקסט רגיל בהודעה אחת, משפרת את התאימות וחוויית המשתמש.

דוגמת הקוד הבאה עם שלבים מציגה כיצד לשלוח דוא"ל עם תוכן טקסט חלופי:

  1. צור מופע של MailMessage מחלקה.
  2. הגדר את כתובות הדוא"ל של השולח והמקבל.
  3. הקצה תוכן HTML ל‑ html_body מאפיין והגדר is_body_html = True.
  4. צור AlternateView בטקסט פשוט באמצעות create_alternate_view_from_string.
  5. הוסף את תצוגת החלופה ל‑ alternate_views אוסף של ה‑ MailMessage.
  6. צור והגדר את ה‑ SmtpClient מופע.
  7. שלח את האימייל באמצעות send שיטה.

כיצד לשלוח דוא"לים בכמות

שליחת דוא"לים בכמות גדולה כוללת שליחת מספר הודעות בבת אחת — כל אחת פוטנציאלית לכתובת נמען שונה. Aspose.Email מספקת תכונה זו באמצעות ה‑ SmtpClient מחלקה.

דוגמת הקוד להלן מציגה כיצד לשלוח אצווה של דוא"לים בפעולה אחת:

  1. צור מופע של SmtpClient מחלקה והגדר את ה‑host, port, האישורים וההגדרות האבטחה שלה.
  2. צור מספר MailMessage מופעים — כל אחד מייצג הודעת דוא"ל נפרדת.
  3. ציין שלוח, מקבל, נושא וגוף ההודעה עבור כל דוא"ל.
  4. הוסף את כל MailMessage אובייקטים ל‑ MailMessageCollection.
  5. הפעל את 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 for Python via .NET מאפשרת לך להשתמש במספר חיבורים סימולטניים בעת שליחת דוא"לים דרך ה‑ SmtpClient מחלקה. תכונה זו יכולה לסייע באופטימיזציית ביצועים בעת שליחת נפח גבוה של דוא"לים על‑ידי פיזור העומס על פני מספר חיבורים. עם זאת, שים לב שהפעלת מצב מרובה חיבורים אינה מבטיחה שיפוי ביצועים בכל התרחישים — זה תלוי בתצורת השרת ובתנאי הרשת.

מאפייני מפתח:

  • use_multi_connection: מאפשרת או משביתה את מצב מרובה חיבורים עבור לקוח ה‑SMTP.

  • connections_quantity: מציינת את מספר החיבורים לפתיחה כאשר מצב מרובה חיבורים מופעל.

דוגמת הקוד הבאה מראה כיצד להפעיל מצב מרובה חיבורים:

  1. צור והגדר מופע (instance) של SmtpClient.
  2. הגדר פרטי שרת כגון host, port, שם משתמש, סיסמה והצפנה.
  3. אפשר מצב מרובה חיבורים על‑ידי הגדרת use_multi_connection.
  4. ציין את מספר החיבורים עם 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 for Python via .NET תומך בשליחת דוא"לים בפורמט TNEF כדי להבטיח שכל העיצוב המתקדם והתכונות יישמרו. זאת ניתן להשיג על‑ידי הפעלת ה‑ use_tnef מאפיין של SmtpClient מחלקה.

דוגמת הקוד הבאה עם שלבים מציגה כיצד לשלוח דוא"ל בפורמט TNEF:

  1. טען הודעת EML קיימת או צור אחת באמצעות ה‑ MailMessage מחלקה.
  2. הגדר את כתובות השולח והמקבל.
  3. אפשר פורמט TNEF על‑ידי הגדרת use_tnef = True ב‑ SmtpClient מופע.
  4. שלח את ההודעה באמצעות ה‑ send() שיטה.

שלח בקשות פגישה בדוא"ל

Microsoft Outlook וקצין‑דוא"ל אחרים המאפשרים לוח שנה כגון IBM Lotus Notes מאפשרים למשתמשים לנהל פגישות ישירות מתיבת הדואר הנכנס. כאשר משתמש מקבל הזמנת פגישה, הוא יכול לקבל או לדחות אותה ישירות בממשק ה‑email שלו. עם Aspose.Email for Python via .NET, מפתחים יכולים ליצור ולשלוח הזמנות פגישה אלה באופן תכניתתי בהתאם לתקן iCalendar (RFC 2445).

כיצד לשלוח הזמנות לפגישות בדוא"ל

Aspose.Email מספקת תמיכה מובנית בהרכבה ושליחת בקשות פגישות iCalendar כחלק מדוא"ל. בקשות אלו תואמות ללקוחות לוח שנה פופולריים ומאפשרות למקבלות להגיב להזמנות בקלות.

|בקשת פגישה iCalendar שנשלחת באימייל| | :- | |todo:image_alt_text|

קטע הקוד הבא מראה כיצד לשלוח בקשות דרך דוא"ל:

  1. צור MailMessage מופע.
  2. ציין את כתובות הדוא"ל של השולח והמקבל.
  3. צור Appointment אובייקט עם מיקום, זמני התחלה/סיום, שולח ונמענים.
  4. הגדר סיכום ותיאור של הפגישה.
  5. צרף את הפגישה לדוא"ל באמצעות add_alternate_view().
  6. שלח את האימייל באמצעות SmtpClient.

תמיכה ב‑iCalendar עבור IBM Lotus Notes

Aspose.Email משתמשת בפורמט iCalendar (RFC 2445), המבטיח שהזמנות הפגישה שלך תואמות ל‑Microsoft Outlook, IBM Lotus Notes וכל לקוח אחר שתומך בתקן. אפשר להשתמש באותה תהליך ללא תלות בפלטפורמת הנמען.

העבר דוא"לים באמצעות לקוח SMTP

העברת דוא"לים היא משימה נפוצה בתקשורת דיגיטלית, משמשת לעיתים קרובות לשיתוף הודעות שהתקבלו עם אחרים. Aspose.Email for Python via .NET מאפשרת למפתחים להעביר דוא"לים תכניתית באמצעות ה‑ SmtpClient מחלקה. מתודת forward מאפשרת להעביר הודעות דוא"ל שמורות או שהתקבלו למקבלים חדשים ללא מעורבות השולח המקורי.

להלן דוגמת קוד המציגה כיצד להעביר (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)