יצירה וניהול של אימיילים

יצירת הודעת אימייל חדשה

ה MailMessage המחלקה מייצגת הודעת אימייל ומאפשרת למפתחי ליצור הודעת אימייל חדשה. ניתן לצרף בקלות מאפייני אימייל בסיסיים כגון From, To, Subject והגוף עם הודעת המייל החדשה. כמו כן אפשר לשמור את הודעת המייל בתבניות שונות כמו EML, MSG ו-MHTML.

  • צור מופע של MailMessage מחלקה.
  • הגדר מאפייני הודעת דואר.
  • שמור הודעת דואר בתבניות שונות.

קטע הקוד הבא מראה כיצד ליצור אימייל חדש עם מאפיינים שונים.

ציון נמענים מרובים

ה MailMessage האובייקט מייצג הודעת אימייל. מופעים של ה- MailMessage המחלקה משמשת לבניית הודעות אימייל שמשודרות לשרת SMTP באמצעות ה- SmtpClient מחלקה. מאמר זה מדגים כיצד לציין יותר מכתובת אימייל אחת. אפשר לציין כתובות אימייל באמצעות ה- MailMessage מחלקה. אלו הם:

  • To - ניתן לציין כתובות נמען בשדה ‘To’. נמי השדה הם קהל היעד הראשי של ההודעה. יכול להיות יותר מכתובת נמען אחת.
  • Cc - CC מרמז על "Carbon Copy" או "Courtesy Copy", ומאפשר לך להוסיף נמעני דוא"ל שצריכים לראות את ההודעה אך אינם נדרשים לפעול על פיה. לדוגמה מנהלים או חברי צוות שצריכים להיות מודעים לשיחה. ב- Aspose.Email ניתן לציין כתובות CC בקוד שלך, כך שהודעות אוטומטיות, או כל הודעה לכתובת מסוימת, יועתקו לצוות רלוונטי.
  • Bcc - Bcc, Blind Carbon Copy, מאפשר לך לשלוח דוא"ל לנמען המוסתר משאר הנמענים. בעוד ש-CC מופיע במידע של הדוא"ל שהנמענים הראשיים רואים, Bcc אינו נראה. הוא נועד להודעות מוסתרות. 

כדי לציין מספר כתובות דוא"ל בהודעה, פעל לפי הצעדים הבאים:

  1. צור מופע של MailMessage מחלקה.
  2. ציין את השדות From ומספר כתובות To, Cc ו-Bcc באמצעות ה- MailMessage מופע.
  3. צור מופע של SmtpClient מחלקה ולשלוח את המייל באמצעות השיטה Send.

דוגמת הקוד למטה מציגה כיצד ניתן לציין מספר כתובות To, CC ו-BCC.

הגדרת שמות תצוגה של השולח והמקבל

דוגמאות התכנות למטה מציגות כיצד לשנות כתובות דוא"ל לשמות ידידותיים בהודעת דוא"ל. שם ידידותי הוא שם שהינו יותר קריא לבני אדם מאשר כתובת הדוא"ל, לדוגמה John Smith במקום js346@domain.com. בעת שליחת דוא"ל, ניתן לשייך שם ידידותי לכתובת דוא"ל ב- MailMessage בונה המחלקה.

כדי להחליף כתובות דוא"ל לשמות ידידותיים בהודעת דוא"ל, פעל לפי הצעדים הבאים:

  • צור מופע של MailMessage המחלקה וציין כתובות אימייל בשדות To ו-From יחד עם שמות ידידותיים.
  • ציין את כתובות האימייל של Cc ו-Bcc יחד עם שמות ידידותיים על ידי קריאה ל- MailMessage בונה המחלקה ב- MailMessage מופע.
  • צור מופע של SmtpClient מחלקה ולשלוח את האימייל באמצעות ה- שלח שיטה.

קטע הקוד הבא מראה כיצד להציג שמות עבור כתובות דוא"ל.

הגדרת נושא האימייל

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

from aspose.email import MailMessage

# Create a new email message
message = MailMessage()

# Set the subject of the email
message.subject = "Meeting Reminder: Project Update"

# Set other email properties (optional)
message.from_address = "sender@example.com"
message.to.append("recipient@example.com")
message.body = "This is a reminder for the upcoming project update meeting."

# Print the email details
print(f"Subject: {message.subject}")
print(f"From: {message.from_address}")
print(f"To: {', '.join(message.to)}")
print(f"Body: {message.body}")

הגדרת גוף האימייל

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

  • גוף HTML
  • גוף טקסט

בנוסף ל- HtmlBody ו TextBody, ל-Aspose.Email יש עוד שתי תכונות לקריאה בלבד הקשורות לגוף המייל:

  • IsBodyText: מודיע למשתמש האם הגוף הוא טקסט.
  • IsBodyHtml: מודיע למשתמש אם הגוף הוא HTML או טקסט פשוט.

מאמר זה מציג כיצד להגדיר טקסט רגיל או טקסט גוף HTML, להגדיר טקסט חלופי ולמקודד את גוף האימייל.

הגדרת גוף HTML

גוף HTML משמש לציון תוכן HTML של גוף הודעה. גוף HTML חייב להיות מוקף בתגיות . קטע הקוד הבא מראה כיצד להגדיר גוף HTML.

הגדרת טקסט חלופי

השתמש ב- AlternateView מחלקה לציון עותקים של הודעת אימייל בתבניות שונות. למשל, אם אתה שולח הודעה ב-HTML, ייתכן שתרצה לספק גרסה בטקסט רגיל למקרה שחלק מהמקבלים משתמשים בתוכנות קריאת אימייל שאינן תומכות בתצוגת HTML. למחלקה זו יש שתי תכונות, linked_resources ו base_uri, המשמשים לפתרון כתובות URL בתוך תוכן המייל.

  • LinkedResources הוא אוסף של אובייקטים מסוג LinkedResources. בעת רנדור, כתובות ה-URL בתוכן האימייל מתאימות תחילה לכתובות ה-URL בקישור התוכן של כל אובייקט LinkedResources באוסף, ונפתרות.
  • BaseUri משמש את קורא המייל לפתרון כתובות URL יחסיות בתוך הגוף, וכן לפתרון כתובות URL של קישורי תוכן יחסיים, באוסף LinkedResources.

קטע הקוד הבא מראה איך להגדיר טקסט חלופי.

תכונות MailMessage

ה MailMessage class מייצג את תוכן הודעת האימייל. מופעים של MailMessage class משמשים לבניית הודעת אימייל המועברת לשרת SMTP לצורך מסירה באמצעות ה SmtpClient class. מאמר זה מראה כיצד להשתמש MailMessage מאפייני שירות class לבקרת המאפיינים הבאים של האימייל:

  • Date and time - באמצעות MailMessage תכונת class Date משמשת לקבלת או הגדרת התאריך והשעה של אימייל.
  • עדיפות הודעה - ה- MailPriority מחלקה המגדירה רמות עדיפות לשליחת הודעת דוא"ל. היא יכולה להיות נמוכה, רגילה או גבוהה. העדיפות משפיעה על מהירות השידור והמסירה.
  • רגישות הודעה - ה- MailSensitivity מחלקה המגדירה חמש רמות של רגישות.
  • הודעת מסירה - הודעות מסירה מודיעות לשולחים שהאימייל שהם שלחו נמסר לתיבת הדואר של הנמען.

בברירת מחדל, התאריך הוא התאריך האמיתי שבו נשלח ההודעה, והזמן הוא הזמן שבו נשלחה, כפי שמוצג ב-Microsoft Outlook. אולם זמן המשלוח האמיתי של האימייל מתווסף על ידי שרת ה-SMTP עצמו בכותרת המייל. לדוגמה, להלן כותרת מייל נפוצה, שבה Date מגדיר את השדה Date.

import aspose.email as ae
from aspose.email import MailMessage

# Create a new MailMessage instance
message = MailMessage()

# Add SMTP headers to the message
message.headers.add("Received", "from ip-123.56.99.216.dsl-cust.ca.inter.net ([216.99.56.123]) by Aspose.secureserver.net with MailEnable ESMTP; Thu, 22 Feb 2007 13:58:57 -0700")
message.headers.add("Return-Path", "<xyz@oikoscucine.it>")
message.headers.add("Received", "from 195.120.225.20 (HELO mail.oikoscucine.it) by aspose.com with esmtp (:1CYY+<LA*- *1WK@) id Q8,/O/-.N83@7-9M for abc@aspose.com; Thu, 22 Feb 2007 20:58:51 +0300")

# Set email details
message.from_address = "XYZ <xyz@oikoscucine.it>"
message.to.append("abc@aspose.com")
message.subject = "For ABC"
message.date = "Thu, 22 Feb 2007 20:58:51 +0300"
message.message_id = "<01c756c4$41b554d0$6c822ecf@dishonestyinsufferably>"
message.headers.add("MIME-Version", "1.0")
message.headers.add("Content-Type", "multipart/alternative; boundary=\"----=_NextPart_000_0006_01C7569A.58DF4CD0\"")
message.headers.add("X-Mailer", "Microsoft Office Outlook, Build 11.0.5510")
message.headers.add("X-MimeOLE", "Produced By Microsoft MimeOLE V6.00.2800.1106")
message.headers.add("Thread-Index", "Aca6Q:=ES0M(9-=(<.<1.<Q9@QE6CD==")
message.headers.add("X-Read", "1")

# Save the message as an EML file
message.save("output.eml", ae.EmlSaveOptions())

קטע הקוד למטה מראה כיצד ניתן להשתמש בכל אחת מהתכונות שהוצגו למעלה.

import aspose.email as ae
from aspose.email import MailMessage, MailPriority, MailSensitivity
from datetime import datetime

# Create a new MailMessage instance
message = MailMessage("sender@gmail.com", "receiver@gmail.com", "Some subject", "Some body text")

# Set additional properties
message.date = datetime.now()
message.priority = MailPriority.HIGH
message.sensitivity = MailSensitivity.NORMAL
message.headers.add("X-Mailer", "Aspose.Email")

# Save the message as an EML file
message.save("output.eml", ae.EmlSaveOptions())

בקשת קבלה של קריאה

דוגמאות הקוד למטה מראות כיצד ניתן לבקש קבלה של קריאת הודעה. The MailMessage מחלקה DeliveryNotificationOptions תכונת Enumeration מתארת את אפשרויות הודעת המשלוח עבור אימייל. כדי לבקש קבלה של קריאת הודעה לאחר שליחת אימייל, עקוב אחרי הצעדים הבאים:

  1. צור מופע של MailMessage מחלקה.
  2. ציין את השולח, המקבל וגוף HTML עבור האימייל ב- MailMessage מופע.
  3. ציין את DeliveryNotificationOptions באחרים MailMessage מופעים.
  4. צור מופע של SmtpClient מחלקה ושלח את האימייל באמצעות שיטת Send.

בקשות קבלה על קריאת ההודעה עשויות שלא תמיד תתקבלנה מכיוון ש:

  • לקוח דוא"ל עשוי לא לתמוך בפונקציה זו.
  • המשתמש הסופי עשוי לבטל את הפונקציה הזו.
  • המשתמש הסופי עשוי לבחור לא לשלוח אחד.

קטע הקוד הבא מראה כיצד לבקש קבלה על קריאת ההודעה.

import aspose.email as ae
from aspose.email import MailMessage, SmtpClient, DeliveryNotificationOptions

# Create an instance of MailMessage class
message = MailMessage()

# Specify From, To, HtmlBody, and DeliveryNotificationOptions
message.from_address = "sender@sender.com"
message.to.append("receiver@receiver.com")
message.html_body = "<html><body>This is the Html body</body></html>"
message.delivery_notification_options = DeliveryNotificationOptions.ON_SUCCESS

message.headers.add("Return-Receipt-To", "sender@sender.com")
message.headers.add("Disposition-Notification-To", "sender@sender.com")

# Create an instance of SmtpClient class
client = SmtpClient()

# Specify your mailing host server, Username, Password, and Port
client.host = "smtp.server.com"
client.username = "Username"
client.password = "Password"
client.port = 25

try:
    # Client.send will send this message
    client.send(message)
    # Display 'Message sent' only if the message is sent successfully
    print("Message sent")
except Exception as ex:
    import traceback
    traceback.print_exc()

הגדרת כותרות אימייל

כותרות אימייל מייצגות סטנדרט אינטרנט ו-RFC מגדיר שדות כותרת שנכללים באימיילים באינטרנט. ניתן לציין כותרת אימייל באמצעות מחלקת MailMessage. סוגי כותרות נפוצים מוגדרים במחלקת HeaderType. זו מחלקה sealed הפועלת כמו מונה רגיל.

בדרך כלל כותרת מייל מכילה את השדות הבאים:

  • To: ניתן לציין כתובות נמען בשדה To. נמען אלו הם קהל היעד הראשי של ההודעה. יכול להיות יותר מכתובת נמען אחת.
  • From: שדה זה מציג את כתובת האימייל של השולח.
  • Cc: מאפשר למשתמשים לשלוח הודעה כ"העתק פחמן" או "העתק נימוס". כלומר, אין הציפייה שהמקבל יגיב או יפעל. בדרך כלל, צוותים מנהלים מודעים באמצעות CC.
  • Bcc: עומד על Blind Carbon Copy, מתייחס לשימוש בשליחת הודעה למספר נמען כך שהמקבל אינו רואה את כל רשימת הנמענים. משמש להודעה מוסתרת.
  • ReplyTo: שדה כותרת זה נועד לציין לאן השולח רוצה שהתגובות יישלחו.
  • Subject: כותרת, נושא. משמש לעיתים כסמן נושא לשיחה עבור הודעות שנענות או מגיביות להודעות אחרות.
  • Date: כותרת זו מציינת תאריך (ויזמן). בדרך כלל, זהו התאריך בו ההודעה נכתבה ונשלחה.
  • XMailer: מידע על תוכנת הלקוח של היוצר. לדוגמה: X-Mailer: Aspose.Email. XMailer משמש לקוחות דואר. ללקוחות דואר שונים יהיו ערכי XMailer שונים. ערך ה-XMailer של MS Outlook הוא Microsoft Office Outlook, Build 11.0.5510. הוא מתעלמים ממנו נמען האימייל או קורא האימייל.

בדרך כלל, כותרת מייל נראית כך:


Reply-To: reply@reply.com

From: sender@sender.com

To: guangzhou@guangzhoo.com

Subject: test mail

Date: 6 Mar 2006 8:2:2 +0800

X-Mailer: Aspose.Email

כדי להתאים אישית כותרת מייל, פעלו לפי הצעדים הבאים:

  • צור מופע של MailMessage מחלקה.
  • ציין את השדות To, From, CC, Bcc, ReplyTo, Subject, Date ו-XMailer באמצעות מופע של ה- MailMessage.
  • צור מופע של MimeHeader מחלקה וציין כותרת סודית.
  • הוסף את הכותרת הסודית ל- MailMessage מופע.

קטע הקוד הבא מראה כיצד להגדיר כותרות אימייל.

import aspose.email as ae
from aspose.email import MailMessage
from datetime import datetime

# Create an instance of MailMessage class
message = MailMessage()

# Specify email details
message.reply_to_list.append("reply@reply.com")
message.from_address = "sender@sender.com"
message.to.append("receiver1@receiver.com")
message.cc.append("receiver2@receiver.com")
message.bcc.append("receiver3@receiver.com")
message.subject = "test mail"
message.date = datetime(2006, 3, 6)
message.headers.add("X-Mailer", "Aspose.Email")

קטע הקוד למעלה מייצר כותרת אימייל בפורמט הבא. ניתן לראות זאת על ידי פתיחת הקובץ שנוצר "MsgHeaders.msg" ב-Microsoft Outlook ואז צפייה בתכונות.


Reply-To: reply@reply.com

From: sender@sender.com

To: receiver1@receiver.com

CC: receiver2@receiver.com

BCC: receiver3@receiver.com

Subject: test mail

Date: 6 Mar 2006 8:2:2 +0800

X-Mailer: Aspose.Email

secret-header: mystery

הכנסת כותרת במיקום ספציפי

ה הוסף מתודה של HeadersCollection המחלקה מוסיפה את הכותרת בסוף האוסף. עם זאת, לפעמים יש צורך להכניס כותרת במיקום ספציפי. במקרה כזה, ה- הוסף השיטה לא תסייע. כדי לבצע זאת, השתמש ב- Insert שיטה של HeadersCollection. אם האוסף מכיל כותרות באותו שם, כותרת זו תתווסף לפני כותרות אחרות באותו שם.

קטע הקוד הבא מראה כיצד להכניס כותרת במיקום ספציפי.

# Insert a header into the MailMessage instance
message.headers.insert("Received", "Value")

הוספת כותרות מותאמות אישית למייל

דוגמת הקוד למטה מדגימה כיצד לציין כותרת מותאמת אישית בהודעת אימייל באמצעות ה- MailMessage מחלקה.

# Add a header into the MailMessage instance
message.headers.add("secret-header", "mystery")

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

secret-header: mystery