Wysyłanie e‑maili i przekazywanie wiadomości za pośrednictwem SMTP
Ten SmtpClient klasa w Aspose.Email for Python via .NET zapewnia solidny i elastyczny interfejs do wysyłania e‑maili przy użyciu protokołu Simple Mail Transfer Protocol (SMTP). Jest głównym punktem wejścia dla deweloperów, którzy chcą dostarczać wiadomości e‑mail w swoich aplikacjach.
Kluczowe cechy SmtpClient dołącz klasę:
-
Dostawa e‑mail przez SMTP: Umożliwia wysyłanie e‑maili bezpośrednio przez serwer SMTP.
-
Alternatywne opcje dostawy: Obsługuje dodatkowe metody dostarczania, takie jak zapisywanie wiadomości w systemie plików lub zapisywanie ich w kolejce wiadomości.
-
Operacje synchroniczne i asynchroniczne:
-
Tryb synchroniczny: Użyj metod Send, aby zablokować bieżący wątek, aż e‑mail zostanie w pełni przesłany.
-
Tryb asynchroniczny: Użyj metod SendAsync do wysyłania wiadomości w tle, co pozwala aplikacji pozostać responsywną.
-
-
Obsługa TNEF: Umożliwia wysyłanie wiadomości w formacie Transport Neutral Encapsulation Format (TNEF) dla zgodności z funkcjami Microsoft Outlook.
Ten artykuł obejmuje wszystkie główne funkcje dostępne poprzez SmtpClient klasa, demonstrująca, jak wysyłać standardowe i zaawansowane wiadomości e‑mail z pełną kontrolą nad konfiguracją i dostawą.
Wysyłanie e‑maili synchronicznie
Ten SmtpClient.send metoda pozwala na synchroniczne wysyłanie wiadomości e‑mail. Podejście to jest przydatne, gdy aplikacja musi potwierdzić dostawę przed kontynuacją.
Aby wysłać e‑mail w formacie zwykłego tekstu synchronicznie przy użyciu Aspose.Email for Python via .NET, użyj poniższych kroków i przykładu kodu:
- Utwórz MailMessage instancję oraz ustaw nadawcę, odbiorcę(ów), temat i treść.
- Skonfiguruj SmtpClient z hostem serwera, portem, nazwą użytkownika i hasłem.
- Wywołaj
sendmetodę na SmtpClient instancję i przekazać MailMessage obiekt.
# 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)
Wyślij wstępnie przygotowany plik EML przez SMTP
Jeśli musisz wysłać wiadomość e‑mail, która została już utworzona i zapisana w formacie EML, możesz wczytać ją i wysłać programowo przy użyciu Aspose.Email for Python via .NET.
Poniższy fragment kodu wraz z krokami pokazuje, jak wysłać plik EML przy użyciu SmtpClient:
- Wczytaj plik EML przy użyciu MailMessage.load metoda.
- Utwórz i skonfiguruj instancję SmtpClient, podając host serwera SMTP, nazwę użytkownika i hasło do uwierzytelnienia.
- Wywołaj
sendmetodę na SmtpClient instancję i przekazać wczytaną wiadomość.
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)
Wyślij e‑mail w formacie zwykłego tekstu
Możesz wysłać e‑mail w formacie zwykłego tekstu przy użyciu Aspose.Email, określając treść wiadomości jako prosty tekst. MailMessage.body właściwość jest używana do określenia zawartości, podczas gdy SmtpClient klasa obsługuje proces wysyłania.
Poniższy fragment kodu wraz z krokami pokazuje, jak wysłać e‑mail w formacie zwykłego tekstu:
- Utwórz instancję MailMessage klasa.
- Ustaw adresy e‑mail nadawcy i odbiorcy.
- Przypisz treść zwykłego tekstu do właściwości body.
- Utwórz instancję SmtpClient klasa z danymi serwera i poświadczeniami.
- Wyślij e‑mail przy użyciu
sendmetoda.
Wyślij e‑mail w formacie HTML
Aspose.Email for Python via .NET umożliwia wysyłanie e‑maili z ciałem sformatowanym w HTML przy użyciu MailMessage klasa. Przypisując treść HTML do html_body właściwość i ustawienie is_body_html na True, możesz tworzyć bogate, stylizowane wiadomości.
Poniższy przykład kodu wraz z krokami pokazuje, jak wysłać e‑mail w formacie HTML:
- Utwórz instancję MailMessage klasa.
- Ustaw adresy e‑mail nadawcy i odbiorcy.
- Ustaw
is_body_html = Trueaby wskazać formatowanie HTML. - Przypisz swoją treść HTML do
html_bodywłaściwość. - Utwórz i skonfiguruj SmtpClient instancję.
- Użyj
sendmetodę do transmisji wiadomości.
Uwaga: Choć ten przykład używa podstawowego HTML, możesz włączyć bardziej złożone struktury HTML, aby tworzyć responsywne i markowe układy e‑mail.
Wyślij e‑mail HTML z alternatywną wersją tekstową
Podczas wysyłania e‑maili w formacie HTML zaleca się dołączenie wersji w zwykłym tekście dla odbiorców, których klienci pocztowi nie obsługują HTML. Aspose.Email for Python via .NET oferuje AlternateView klasa, aby zawrzeć zarówno treść HTML, jak i zwykły tekst w jednej wiadomości, zwiększając kompatybilność i wygodę użytkownika.
Poniższy przykład kodu i kroki pokazują, jak wysłać e‑mail z alternatywną treścią tekstową:
- Utwórz instancję MailMessage klasa.
- Ustaw adresy e‑mail nadawcy i odbiorcy.
- Przypisz treść HTML do
html_bodywłaściwość i ustawis_body_html = True. - Utwórz alternatywny widok w formacie zwykłego tekstu przy użyciu create_alternate_view_from_string.
- Dodaj alternatywny widok do
alternate_viewskolekcja MailMessage. - Utwórz i skonfiguruj SmtpClient instancję.
- Wyślij e‑mail przy użyciu
sendmetoda.
Jak wysyłać masowe e‑maile
Wysyłanie masowych e‑maili polega na jednoczesnym wysyłaniu wielu wiadomości — każda potencjalnie skierowana do innego odbiorcy. Aspose.Email umożliwia tę funkcję przy użyciu SmtpClient klasa.
Poniższy przykład kodu pokazuje, jak wysłać partię e‑maili jednocześnie:
- Utwórz instancję SmtpClient klasę i skonfiguruj jej host, port, poświadczenia oraz ustawienia bezpieczeństwa.
- Utwórz wiele MailMessage instancje — każda reprezentująca pojedynczą wiadomość e‑mail.
- Określ nadawcę, odbiorcę, temat i treść wiadomości dla każdego e‑maila.
- Dodaj wszystkie MailMessage obiekty do MailMessageCollection.
- Wywołaj
sendmetoda SmtpClient klasa, przekazując MailMessageCollection jako 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)
Wysyłaj e‑maile z obsługą wielu połączeń
Aspose.Email for Python via .NET umożliwia użycie wielu jednoczesnych połączeń przy wysyłaniu e‑maili przez SmtpClient klasa. Ta funkcja może pomóc zoptymalizować wydajność przy wysyłaniu dużej liczby e‑maili, rozkładając obciążenie na kilka połączeń. Należy jednak pamiętać, że włączenie trybu wielokrotnego połączenia nie gwarantuje przyspieszenia w każdych warunkach — zależy to od konfiguracji serwera i warunków sieciowych.
Kluczowe właściwości:
-
use_multi_connection: Włącza lub wyłącza tryb wielokrotnego połączenia dla klienta SMTP. -
connections_quantity: Określa liczbę połączeń do otwarcia, gdy tryb wielokrotnego połączenia jest włączony.
Poniższy przykład kodu pokazuje, jak włączyć tryb wielokrotnych połączeń:
- Utwórz i skonfiguruj instancję SmtpClient.
- Ustaw szczegóły serwera, takie jak host, port, nazwa użytkownika, hasło i szyfrowanie.
- Włącz tryb wielokrotnych połączeń, ustawiając
use_multi_connection. - Określ liczbę połączeń przy użyciu
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)
Wyślij e‑maile w formacie TNEF
Transport Neutral Encapsulation Format (TNEF) jest własnościowym formatem e‑mail używanym przez Microsoft Outlook i Exchange w celu zachowania bogatego formatowania, osadzonych obiektów oraz specjalnych funkcji, takich jak przyciski głosowania. Standardowe programy pocztowe mogą nie zachować tego formatowania przy użyciu typowych wiadomości opartych na MIME.
Aspose.Email for Python via .NET obsługuje wysyłanie e‑maili w formacie TNEF, aby zapewnić zachowanie wszystkich zaawansowanych formatowań i funkcji. Osiąga się to poprzez włączenie use_tnef właściwość SmtpClient klasa.
Poniższy przykład kodu i kroki pokazują, jak wysłać e‑mail w formacie TNEF:
- Wczytaj istniejącą wiadomość EML lub utwórz ją przy użyciu MailMessage klasa.
- Ustaw adresy nadawcy i odbiorcy.
- Włącz formatowanie TNEF, ustawiając
use_tnef = Truena SmtpClient instancję. - Wyślij wiadomość przy użyciu
send()metoda.
Wyślij żądania spotkań przez e‑mail
Microsoft Outlook i inne klienty poczty z obsługą kalendarza, takie jak IBM Lotus Notes, pozwalają użytkownikom zarządzać spotkaniami bezpośrednio z poziomu skrzynki odbiorczej. Gdy użytkownik otrzyma zaproszenie na spotkanie, może je zaakceptować lub odrzucić bezpośrednio w swoim kliencie poczty. Dzięki Aspose.Email for Python via .NET programiści mogą programowo tworzyć i wysyłać te zaproszenia zgodnie ze standardem iCalendar (RFC 2445).
Jak wysłać zaproszenia na spotkanie przez e‑mail
Aspose.Email zapewnia wbudowaną obsługę tworzenia i wysyłania żądań spotkań iCalendar w ramach e‑maila. Te żądania są kompatybilne z popularnymi klientami kalendarzy i umożliwiają odbiorcom łatwe odpowiadanie na zaproszenia.
|Żądanie spotkania iCalendar wysłane e‑mailem| | :- | |
|
Poniższy fragment kodu pokazuje, jak wysłać żądania za pośrednictwem e‑maila:
- Utwórz MailMessage instancję.
- Określ adresy e‑mail nadawcy i odbiorcy.
- Utwórz Appointment obiekt z lokalizacją, czasem rozpoczęcia/zakonczenia, nadawcą i odbiorcami.
- Ustaw podsumowanie i opis spotkania.
- Dołącz spotkanie do e‑maila przy użyciu
add_alternate_view(). - Wyślij e‑mail przy użyciu SmtpClient.
Obsługa iCalendar w IBM Lotus Notes
Aspose.Email używa formatu iCalendar (RFC 2445), co zapewnia, że Twoje żądania spotkań są kompatybilne z Microsoft Outlook, IBM Lotus Notes i innymi klientami obsługującymi standard. Ten sam proces może być używany niezależnie od platformy odbiorcy.
Przekazuj e‑maile przy użyciu klienta SMTP
Przekazywanie e‑maili jest powszechnym zadaniem w komunikacji cyfrowej, często używanym do udostępniania otrzymanych wiadomości innym. Aspose.Email for Python via .NET umożliwia programistom przekazywanie e‑maili programowo przy użyciu SmtpClient klasa. Metoda forward umożliwia przekazywanie zapisanych lub odebranych wiadomości e‑mail do nowych odbiorców bez udziału pierwotnego nadawcy.
Poniżej znajduje się przykład kodu, który pokazuje, jak przekazać e‑mail przy użyciu MailMessage klasa:
Przekazuj pliki EML bez wczytywania do MailMessage
Aspose.Email obsługuje także bezpośrednie przekazywanie plików .eml bez wczytywania ich najpierw do MailMessage obiekt. Jest to szczególnie przydatne w sytuacjach, gdy konieczne jest ograniczenie zużycia pamięci systemowej.
Poniższy przykład kodu pokazuje, jak bezpośrednio przekazać plik 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)