E‑mails verzenden & berichten doorsturen via SMTP

De SmtpClient klasse in Aspose.Email for Python via .NET biedt een robuuste en flexibele interface voor het verzenden van e-mails via het Simple Mail Transfer Protocol (SMTP). Het is het primaire toegangspunt voor ontwikkelaars die e-mailberichten binnen hun applicaties willen leveren.

Belangrijkste kenmerken van de SmtpClient klasse opnemen:

  • SMTP Email Delivery: Maakt het mogelijk e-mails direct via een SMTP-server te verzenden.

  • Alternative Delivery Options: Ondersteunt extra leveringsmethoden zoals het opslaan van berichten in het bestandssysteem of het schrijven naar een berichtenwachtrij.

  • Synchronische en Asynchrone bewerkingen:

    • Synchronous Mode: Gebruik Send-methoden om de huidige thread te blokkeren totdat de e-mail volledig is verzonden.

    • Asynchrone modus: Gebruik SendAsync‑methoden om berichten op de achtergrond te verzenden, waardoor de applicatie responsief blijft.

  • TNEF‑ondersteuning: Stelt het verzenden van berichten in Transport Neutral Encapsulation Format (TNEF) mogelijk voor compatibiliteit met Microsoft Outlook‑functies.

Dit artikel behandelt alle belangrijke functionaliteiten die beschikbaar zijn via de SmtpClient klasse, die laat zien hoe je standaard en geavanceerde e‑mailberichten kunt verzenden met volledige controle over configuratie en levering.

E‑mails synchroon verzenden

De SmtpClient.send methode stelt je in staat een e‑mailbericht synchroon te verzenden. Deze aanpak is nuttig wanneer de applicatie bevestiging van levering nodig heeft voordat deze doorgaat.

Om een platte‑tekst e‑mail synchroon te verzenden met Aspose.Email voor Python via .NET, gebruik de onderstaande stappen en het code‑voorbeeld:

  1. Maak een MailMessage instantie en stel de afzender, ontvanger(s), onderwerp en body in.
  2. Configureer de SmtpClient met de serverhost, poort, gebruikersnaam en wachtwoord.
  3. Roep de send methode op de SmtpClient instantie en geef de MailMessage object.
# 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)

Een vooraf opgesteld EML-bestand via SMTP verzenden

Als u een e-mailbericht moet verzenden dat al is opgesteld en opgeslagen in EML-indeling, kunt u het programmatically laden en verzenden met Aspose.Email voor Python via .NET.

Het volgende codefragment met stappen demonstreert hoe een EML-bestand te verzenden met SmtpClient:

  1. Laad het EML-bestand met behulp van de MailMessage.load methode.
  2. Maak een instantie aan en configureer deze van SmtpClient, waarbij de host, gebruikersnaam en wachtwoord van de SMTP-server voor authenticatie worden opgegeven.
  3. Roep de send methode op de SmtpClient instantie en geef het geladen bericht door.
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)

Een platte-tekst e-mail verzenden

U kunt een platte-tekst e-mail verzenden met Aspose.Email door de berichtinhoud als eenvoudige tekst op te geven. De MailMessage.body eigenschap wordt gebruikt om de inhoud te definiëren, terwijl de SmtpClient klasse verwerkt het verzendproces.

De volgende codefragment met stappen demonstreert hoe een platte-tekst e-mail te verzenden:

  1. Maak een instantie van de MailMessage klasse.
  2. Stel de e-mailadressen van afzender en ontvanger in.
  3. Wijs de platte-tekstinhoud toe aan de body-eigenschap.
  4. Maak een instantie van de SmtpClient klasse met de serverdetails en inloggegevens.
  5. Verzend de e‑mail met behulp van de send methode.

HTML-e-mail verzenden

Aspose.Email voor Python via .NET stelt u in staat e-mails met HTML-geformatteerde bodies te verzenden met behulp van de MailMessage klasse. Door HTML-inhoud toe te wijzen aan de html_body eigenschap en instelling is_body_html op True, kunt u rijke, gestylede berichten maken.

Het volgende codevoorbeeld met stappen demonstreert hoe een HTML-e-mail te verzenden:

  1. Maak een instantie van de MailMessage klasse.
  2. Stel de e-mailadressen van afzender en ontvanger in.
  3. Instellen is_body_html = True om HTML-opmaak aan te geven.
  4. Wijs uw HTML-inhoud toe aan de html_body eigenschap.
  5. Maak en configureer de SmtpClient instantie.
  6. Gebruik de send methode om het bericht te verzenden.

Opmerking: Hoewel dit voorbeeld eenvoudige HTML gebruikt, kunt u meer complexe HTML-structuren opnemen om responsieve en merkgebonden e-maillay-outs te maken.

HTML-e-mail verzenden met platte-tekst alternatief

Bij het verzenden van HTML-e-mails is het aanbevolen om een platte-tekst versie op te nemen voor ontvangers waarvan de e-mailclient geen HTML ondersteunt. Aspose.Email voor Python via .NET biedt de AlternateView klasse om zowel HTML- als platte-tekstinhoud in één bericht op te nemen, waardoor de compatibiliteit en gebruikerservaring worden verbeterd.

Het volgende codevoorbeeld en stappen demonstreert hoe een e-mail met alternatieve tekstinhoud te verzenden:

  1. Maak een instantie van de MailMessage klasse.
  2. Stel de e-mailadressen van afzender en ontvanger in.
  3. Wijs HTML-inhoud toe aan de html_body eigenschap en stel in is_body_html = True.
  4. Maak een platte-tekst AlternateView met behulp van create_alternate_view_from_string.
  5. Voeg de alternatieve weergave toe aan de alternate_views collectie van de MailMessage.
  6. Maak en configureer de SmtpClient instantie.
  7. Verzend de e‑mail met behulp van de send methode.

Hoe bulk-e-mails te verzenden

Het verzenden van bulk-e-mails omvat het gelijktijdig verzenden van meerdere berichten — elk potentieel gericht aan een andere ontvanger. Aspose.Email biedt deze mogelijkheid met behulp van de SmtpClient klasse.

Het onderstaande codevoorbeeld toont hoe een batch e-mails in één keer te verzenden:

  1. Maak een instantie van de SmtpClient klasse en configureer de host, poort, inloggegevens en beveiligingsinstellingen.
  2. Maak meerdere MailMessage instanties — elk vertegenwoordigt een afzonderlijk e-mailbericht.
  3. Geef afzender, ontvanger, onderwerp en berichtinhoud op voor elke e-mail.
  4. Voeg alle MailMessage objecten naar een MailMessageCollection.
  5. Roep de send methode van de SmtpClient klasse, waarbij de MailMessageCollection als een argument.
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)

E-mails verzenden met multi-verbinding ondersteuning

Aspose.Email voor Python via .NET stelt u in staat meerdere gelijktijdige verbindingen te gebruiken bij het verzenden van e-mails via de SmtpClient klasse. Deze functie kan de prestaties optimaliseren bij het verzenden van grote hoeveelheden e-mail door de werklast over meerdere verbindingen te verdelen. Houd er echter rekening mee dat het inschakelen van multi-verbinding modus niet in alle scenario’s een prestatietoename garandeert — dit hangt af van de serverconfiguratie en netwerkomstandigheden.

Belangrijke eigenschappen:

  • use_multi_connection: Schakelt multi-verbinding modus in of uit voor de SMTP-client.

  • connections_quantity: Geeft het aantal te openen verbindingen aan wanneer multi-verbinding modus is ingeschakeld.

Het volgende codevoorbeeld toont hoe u multi-verbinding modus kunt inschakelen:

  1. Maak een instantie aan en configureer deze van SmtpClient.
  2. Stel serverdetails in zoals host, poort, gebruikersnaam, wachtwoord en encryptie.
  3. Schakel multi-verbinding modus in door te zetten use_multi_connection.
  4. Geef het aantal verbindingen op met 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-geformatteerde e-mails verzenden

Transport Neutral Encapsulation Format (TNEF) is een propriëtair e-mailformaat dat door Microsoft Outlook en Exchange wordt gebruikt om rijke opmaak, ingesloten objecten en speciale functies zoals stemknoppen te behouden. Standaard e-mailclients behouden deze opmaak mogelijk niet bij het gebruik van gewone MIME-berichten.

Aspose.Email voor Python via .NET ondersteunt het verzenden van e-mails in TNEF-indeling om ervoor te zorgen dat alle geavanceerde opmaak en functies behouden blijven. Dit wordt bereikt door het inschakelen van de use_tnef eigenschap van de SmtpClient klasse.

Het volgende codevoorbeeld en stappen demonstreert hoe een TNEF-e-mail te verzenden:

  1. Laad een bestaand EML-bericht of maak er één aan met behulp van de MailMessage klasse.
  2. Stel de afzender- en ontvangeradressen in.
  3. Schakel TNEF-opmaak in door de use_tnef = True op de SmtpClient instantie.
  4. Verzend het bericht met de send() methode.

Vergaderverzoeken via e-mail verzenden

Microsoft Outlook en andere agenda-ondersteunende e-mailclients zoals IBM Lotus Notes stellen gebruikers in staat afspraken rechtstreeks vanuit hun inbox te beheren. Wanneer een gebruiker een vergaderuitnodiging ontvangt, kan hij deze direct in de e-mailclient accepteren of weigeren. Met Aspose.Email voor Python via .NET kunnen ontwikkelaars deze vergaderuitnodigingen programmatically maken en verzenden volgens de iCalendar (RFC 2445) standaard.

Hoe vergaderuitnodigingen via e-mail te verzenden

Aspose.Email biedt ingebouwde ondersteuning voor het opstellen en verzenden van iCalendar-vergaderverzoeken als onderdeel van een e-mail. Deze verzoeken zijn compatibel met populaire agenda-clients en stellen ontvangers in staat eenvoudig op uitnodigingen te reageren.

|iCalendar‑vergaderverzoek verzonden per e‑mail| | :- | |todo:image_alt_text|

Het volgende codefragment laat zien hoe u verzoeken via e-mail kunt verzenden:

  1. Maak een MailMessage instantie.
  2. Geef de e-mailadressen van afzender en ontvanger op.
  3. Maak een Appointment object met locatie, start-/eindtijden, afzender en ontvangers.
  4. Stel samenvatting en beschrijving van de afspraak in.
  5. Voeg de afspraak toe aan de e-mail met behulp van add_alternate_view().
  6. Verzend de e‑mail met behulp van de SmtpClient.

iCalendar-ondersteuning voor IBM Lotus Notes

Aspose.Email gebruikt het iCalendar-formaat (RFC 2445), wat ervoor zorgt dat uw vergaderverzoeken compatibel zijn met Microsoft Outlook, IBM Lotus Notes en elke andere client die de standaard ondersteunt. Hetzelfde proces kan worden gebruikt ongeacht het platform van de ontvanger.

E-mails doorsturen met SMTP-client

E-mails doorsturen is een veelvoorkomende taak in digitale communicatie, vaak gebruikt om ontvangen berichten met anderen te delen. Aspose.Email voor Python via .NET stelt ontwikkelaars in staat e-mails programmatically door te sturen met behulp van de SmtpClient klasse. De forward-methode maakt het mogelijk opgeslagen of ontvangen e-mails door te sturen naar nieuwe ontvangers zonder de oorspronkelijke afzender te betrekken.

Hieronder staat een codevoorbeeld dat toont hoe een e-mail door te sturen met de MailMessage klasse:

EML-bestanden doorsturen zonder te laden in MailMessage

Aspose.Email ondersteunt ook het direct doorsturen van .eml-bestanden zonder ze eerst in een MailMessage object. Dit is bijzonder nuttig in scenario’s waarin het geheugengebruik van het systeem moet worden geminimaliseerd.

Het onderstaande codevoorbeeld toont hoe een EML-bestand direct door te sturen:

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)