Skapa och hantera e‑post
Skapa ett nytt e‑postmeddelande
Den MailMessage klass representerar ett e‑postmeddelande och låter utvecklare skapa nya e‑postmeddelanden. Grundläggande e‑postegenskaper som From, To, Subject och body kan enkelt bifogas till det nyss skapade meddelandet. På liknande sätt kan meddelandet sparas i olika format som EML, MSG och MHTML.
- Skapa en instans av MailMessage klass.
- Ställ in e‑postmeddelandets egenskaper.
- Spara e‑postmeddelandet i olika format.
Följande kodexempel visar hur du skapar ett nytt e‑postmeddelande med olika egenskaper.
Specificera flera mottagare
Den MailMessage objekt representerar ett e‑postmeddelande. Instanser av MailMessage klass används för att konstruera e‑postmeddelanden som sänds till en SMTP‑server med hjälp av SmtpClient klass. Denna artikel demonstrerar hur man anger mer än en e‑postadress. E‑postadresser kan anges med hjälp av MailMessage klass. De är:
- To – Mottagaradresser kan anges i ‘To’-fältet. Mottagarna i ‘To’-fältet är meddelandets primära publik. Det kan finnas mer än en mottagaradress.
- Cc – CC står för "carbon copy" eller "courtesy copy" och låter dig lägga till e‑postmottagare som behöver se e‑posten men som inte nödvändigtvis förväntas agera på den. Chefer, till exempel, eller medlemmar i ditt team som behöver vara medvetna om en konversation. Med Aspose.Email kan CC‑adresser specificeras i din kod. På så sätt kan automatiserade e‑postmeddelanden, eller alla e‑post till en specifik adress, kopieras till relevant personal.
- Bcc – Bcc, blind carbon copy, låter dig skicka ett e‑postmeddelande till en mottagare som är dold för andra mottagare. Medan en CC visas i e‑postinformationen för huvudmottagarna, visas en Bcc inte. Det är avsett för dold avisering.
För att specificera flera e‑postadresser i ett e‑postmeddelande, följ dessa steg:
- Skapa en instans av MailMessage klass.
- Ange From‑ och flera To‑, Cc‑ och Bcc‑adresser med hjälp av
MailMessageinstans. - Skapa en instans av SmtpClient klass och skicka e‑posten med Send‑metoden.
Kodexemplet nedan visar hur flera Till‑, CC‑ och BCC‑adresser kan specificeras.
Ställa in avsändar‑ och mottagarnamn
Programmeringsexemplen nedan demonstrerar hur man ändrar e‑postadresser till vänliga namn i ett e‑postmeddelande. Ett vänligt namn är ett namn som är mer människovänligt än e‑postadressen, till exempel John Smith istället för js346@domain.com. När vi skickar ett e‑postmeddelande kan vi associera ett vänligt namn med en e‑postadress i MailMessage klasskonstruktor.
För att ändra e‑postadresser till vänliga namn i ett e‑postmeddelande, följ dessa steg:
- Skapa en instans av MailMessage klass och ange e‑postadresser i To‑ och From‑fälten samt med vänliga namn.
- Ange Cc‑ och Bcc‑e‑postadresser samt vänliga namn genom att anropa MailMessage klasskonstruktör i
MailMessageinstans. - Skapa en instans av SmtpClient klass och skicka e‑posten med Skicka metod.
Följande kodsnutt visar hur du visar namn för e‑postadresser.
Ställa in ämnet för ett e‑postmeddelande
Den MailMessage klass låter dig ange en kort sammanfattning av meddelandets innehåll med hjälp av ämne egenskap. Följande kodexempel demonstrerar hur man skapar ett e‑postmeddelande och sätter dess ämne:
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}")
Ställa in e‑postkropp
Förutom meddelandets ämne kan e‑postkroppen anges med samma MailMessage klass. Ett e‑postmeddelande kan ha flera kroppar. Det finns två typer av e‑postkroppar i klassen:
- HTML‑kropp
- Textkropp
Utöver HtmlBody och TextBody, Aspose.Email har ytterligare två skrivskyddade egenskaper relaterade till e‑postkroppen:
IsBodyText: talar om för användaren om kroppen är text.IsBodyHtml: talar om för användaren om kroppen är HTML eller ren text.
Denna artikel visar hur man definierar klartext‑ eller HTML‑kroppstext, anger alternativ text och kodar e‑postkroppen.
Ange HTML‑kropp
Html‑kropp används för att ange HTML‑innehållet i ett meddelandekropp. Html‑kroppen måste vara omgiven av -taggar. Följande kodexempel visar hur du sätter HTML‑kropp.
Ange alternativ text
Använd AlternateView klass för att specificera kopior av ett e‑postmeddelande i olika format. Till exempel, om du skickar ett meddelande i HTML, kan du även vilja erbjuda en klartextversion ifall vissa mottagare använder e‑postläsare som inte kan visa HTML‑innehåll. Denna klass har två egenskaper, linked_resources och base_uri, som används för att lösa URL:er i e‑postens innehåll.
- LinkedResources är en samling av LinkedResources‑objekt. När de renderas matchas URL:er i e‑postens innehåll först mot URL:erna i Content Link för varje LinkedResources‑objekt i samlingen, och löses.
- BaseUri används av e‑postläsaren för att lösa relativa URL:er i kroppen, och även för att lösa relativa Content Link‑URL:er i samlingen LinkedResources.
Följande kodsnutt visar hur du anger alternativ text.
MailMessage‑funktioner
Den MailMessage klass representerar innehållet i ett e‑postmeddelande. Instanser av MailMessage klass används för att konstruera ett e‑postmeddelande som överförs till en SMTP‑server för leverans med hjälp av SmtpClient klass. Denna artikel visar hur man använder MailMessage klass nytta funktioner för att styra följande e‑postfunktioner:
- Date and time - Genom MailMessage klass Date‑egenskap vi får eller sätter ett e‑postmeddelandes datum och tid.
- Meddelandeprioritet – MailPriority klass specificerar prioriteringsnivåer för att skicka ett e‑postmeddelande. Den kan vara låg, normal eller hög. Prioritet påverkar överföringshastigheten och leveransen.
- Meddelandekänslighet – MailSensitivity klass specificerar fem nivåer av känslighet.
- Leveransavisering – Leveransaviseringar låter avsändaren veta att e‑postmeddelandet har levererats till mottagarens inkorg.
Som standard är datumet det faktiska datum då meddelandet skickades, och tiden är den tid det skickades, enligt Microsoft Outlook. Dock läggs den faktiska e‑postleveranstiden till av SMTP‑servern själv i e‑posthuvudet. Till exempel nedan ett vanligt e‑posthuvud, där Date sätts i fältet 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())
Kodsnutten nedan illustrerar hur var och en av funktionerna som diskuterats ovan kan användas.
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())
Begära en mottagningsbekräftelse
Programmeringsexemplen nedan visar hur du kan begära ett läskvitto. Det MailMessage klass DeliveryNotificationOptions Enumerationsegenskapen beskriver leveransavisalternativen för ett e‑postmeddelande. För att begära ett läskvitto efter att ha skickat ett e‑postmeddelande, följ dessa steg:
- Skapa en instans av MailMessage klass.
- Ange avsändare, mottagare och HTML‑kropp för e‑posten i MailMessage instans.
- Specificera DeliveryNotificationOptions i andra MailMessage instanser.
- Skapa en instans av SmtpClient klass och skicka e‑posten med Send‑metoden.
Begäran om läskvitto kanske inte alltid beaktas därför att:
- En e‑postklient kanske inte implementerar den funktionen.
- Slutanvändaren kan ha inaktiverat den funktionen.
- Slutanvändaren kan välja att inte skicka någon.
Följande kodsnutt visar hur du begär en läskvitto.
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()
Ställ in e‑posthuvuden
E‑posthuvuden representerar en internetstandard och RFC definierar huvudfält som inkluderas i internet‑e‑postmeddelanden. Ett e‑posthuvud kan specificeras med MailMessage‑klassen. Vanliga huvudtyper definieras i HeaderType‑klassen. Det är en förseglad klass som fungerar som en vanlig uppräkning.
Vanligtvis innehåller ett e‑posthuvud dessa fält:
- To: Mottagaradresser kan anges i To-fältet. Dessa mottagare är meddelandets primära publik. Det kan finnas mer än en mottagaradress.
- From: Detta fält visar avsändarens e‑postadress.
- Cc: Tillåter att skicka ett meddelande som en "Carbon Copy" eller "Courtesy Copy". Mottagaren förväntas inte svara eller agera. Vanligtvis informeras överordnad personal med Cc.
- Bcc: Står för Blind Carbon Copy, dvs. att skicka ett meddelande till flera mottagare utan att deras adresser syns för varandra. Det är avsett för dold notifikation.
- ReplyTo: Detta huvudfält anger var avsändaren vill ha svar skickade.
- Subject: Titel, rubrik, ämne. Används ofta som tråbindare för svar eller kommentarer på andra meddelanden.
- Date: Detta huvud anger ett datum (och tid). Vanligtvis är det datumet då meddelandet skrevs och skickades.
- XMailer: Information om avsändarens klientprogramvara. Exempel: X-Mailer: Aspose.Email. XMailer används av e‑postklienter. Olika e‑postklienter har olika XMailer‑värden. MS Outlooks XMailer‑värde är Microsoft Office Outlook, Build 11.0.5510. Det ignoreras av mottagaren eller e‑postläsaren.
Vanligtvis ser ett e‑posthuvud ut ungefär så här:
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
För att anpassa ett e‑posthuvud, följ dessa steg:
- Skapa en instans av MailMessage klass.
- Ange To, From, CC, Bcc, ReplyTo, Subject, Date & XMailer med en instans av MailMessage.
- Skapa en instans av MimeHeader klass och specificera hemligt huvud.
- Lägg till det hemliga huvudet i MailMessage instans.
Följande kodexempel visar hur du ställer in e‑posthuvuden.
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")
Ovanstående kodexempel producerar ett e‑posthuvud i följande format. Detta kan observeras genom att öppna den resulterande filen "MsgHeaders.msg" i Microsoft Outlook och sedan visa egenskaperna.
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
Infoga huvud på specifik plats
Den Lägg till metod för HeadersCollection klass infogar huvudet i slutet av samlingen. Ibland kan det dock vara nödvändigt att infoga ett huvud på en specifik plats. I sådant fall, Lägg till metoden kommer inte att hjälpa. För att uppnå detta, använd Insert metod för HeadersCollection. Om samlingen innehåller huvuden med samma namn, kommer detta huvud att infogas före andra huvuden med samma namn.
Följande kodexempel visar hur du infogar ett huvud på en specifik plats.
# Insert a header into the MailMessage instance
message.headers.insert("Received", "Value")
Lägga till anpassade huvud i e‑post
Programmeringsexemplet nedan demonstrerar hur man specificerar ett anpassat huvud i ett e‑postmeddelande med hjälp av MailMessage klass.
# Add a header into the MailMessage instance
message.headers.add("secret-header", "mystery")
Ovanstående kodexempel genererar ett e‑posthuvud i följande format:
secret-header: mystery