Tworzenie i ustawianie zawartości e‑maili

Utwórz nową wiadomość e‑mail

Aspose.Email dla Javy umożliwia programistom tworzenie wiadomości MIME (Multipurpose Internet Mail Extensions) od podstaw. Główną klasą do tego celu w API Aspose.Email dla Javy jest MailMessage klasa. Ten temat wyjaśnia kroki potrzebne do tworzenia wiadomości e‑mail w formatach plików EML, MSG i MTH przy użyciu Aspose.Email dla Javy.

Aby utworzyć wiadomość e‑mail od podstaw:

  1. Utwórz instancję klasy MailMessage.
  2. Ustaw temat wiadomości używając setSubject() metoda.
  3. Ustaw treść wiadomości używając setHtmlBody() metoda.
  4. Ustaw nadawcę e‑maila używając setFrom() metoda.
  5. Ustaw odbiorcę w polu TO za pomocą getTo().add() metoda.
  6. Ustaw odbiorcę w polu CC za pomocą getCC().add() metoda.
  7. Wywołaj Save() metoda zapisująca plik wiadomości na dysku w formatach MSG, EML i MHT.  

Określanie wielu odbiorców

Ten MailMessage reprezentuje wiadomość e‑mail. Instancje klasy MailMessage są używane do budowania wiadomości e‑mail, które są przesyłane do serwera SMTP przy użyciu SmtpClient klasa. Ten temat pokazuje, jak określić więcej niż jeden adres e‑mail. Adresy e‑mail można określić przy użyciu klasy MailMessage. Adresy e‑mail używane w klasie MailMessage to:

  • To – Adresy odbiorców można podać w polu „To”. Odbiorcy w polu „To” są główną grupą docelową wiadomości. Może być więcej niż jeden adres odbiorcy.
  • Cc – CC oznacza „carbon copy” (kopia węglowa) lub „courtesy copy” (kopia grzecznościowa) i pozwala dodać odbiorców, którzy muszą zobaczyć wiadomość, ale nie muszą na nią reagować. Na przykład menedżerowie lub członkowie zespołu, którzy powinni być świadomi rozmowy. W Aspose.Email adresy CC można określić w kodzie. Dzięki temu automatyczne e‑maile lub wszystkie e‑maile do konkretnego adresu mogą być kopiowane do odpowiednich osób.
  • Bcc – Bcc, blind carbon copy, pozwala wysłać e‑mail do odbiorcy ukrytego przed innymi odbiorcami. Gdy CC jest widoczne w informacjach e‑mail, które widzą główni odbiorcy, Bcc nie jest. Służy do ukrytego powiadamiania. 

Aby określić wiele adresów e‑mail w wiadomości, wykonaj następujące kroki:

  1. Utwórz instancję klasy MailMessage.
  2. Określ nadawcę (From) oraz wiele adresów To, Cc i Bcc używając instancji MailMessage.
  3. Utwórz instancję klasy SmtpClient i wyślij e‑mail używając metody Send.

Poniższy przykład kodu pokazuje, jak można określić wiele adresów To, CC i BCC.

Zmienianie adresów e‑mail na przyjazną nazwę

Poniższe przykłady programistyczne pokazują, jak zamienić adresy e‑mail na przyjazne nazwy w wiadomości e‑mail. Przyjazna nazwa to nazwa bardziej przyjazna człowiekowi niż adres e‑mail, np. John Smith zamiast js346@domain.com. Podczas wysyłania e‑mail możemy powiązać przyjazną nazwę z adresem e‑mail w MailMessage konstruktor klasy.

Aby zamienić adresy e‑mail na przyjazne nazwy w wiadomości, wykonaj następujące kroki:

  • Utwórz instancję klasy MailMessage i określ adresy e‑mail w polach To i From wraz z przyjaznymi nazwami.
  • Określ adresy e‑mail Cc i Bcc wraz z przyjaznymi nazwami, wywołując konstruktor klasy MailMessage w instancji MailMessage.
  • Utwórz instancję klasy SmtpClient i wyślij e‑mail używając metody Send.

Poniższy fragment kodu pokazuje, jak wyświetlać nazwy dla adresów e‑mail.

Ustaw ciało wiadomości

Ten MailMessage klasa reprezentuje wiadomość e‑mail. Instancje klasy MailMessage są używane do budowania wiadomości e‑mail, które są przesyłane do serwera SMTP w celu dostarczenia przy użyciu SmtpClient klasa. Ciało wiadomości można określić przy użyciu klasy MailMessage. Ciało e‑maila można określić przy użyciu setHtmlBody metody w klasie MailMessage.

Oprócz HtmlBody, Aspose.Email posiada jeszcze jedną metodę związaną z ciałem wiadomości:

  • isBodyHtml: informuje użytkownika, czy ciało jest w formacie HTML czy zwykły tekst.

Ten temat pokazuje, jak zdefiniować tekst ciała HTML i ustawić tekst alternatywny.

Ustawianie ciała HTML

HtmlBody służy do określenia zawartości HTML ciała wiadomości. HtmlBody musi być zamknięte w znacznikach . Poniższy fragment kodu pokazuje, jak ustawić ciało HTML.

Ustawianie tekstu alternatywnego

Użyj AlternateView klasa służąca do określania kopii wiadomości e‑mail w różnych formatach. Na przykład, jeśli wysyłasz wiadomość w HTML, możesz też chcieć dostarczyć wersję zwykłego tekstu, jeśli niektórzy odbiorcy używają czytników e‑mail, które nie wyświetlają treści HTML. Ta klasa ma dwie właściwości, LinkedResources i BaseUri, które są używane do rozwiązywania adresów URL w treści e‑maila.

  • LinkedResources to kolekcja obiektów LinkedResources. Podczas renderowania, adresy URL w treści e‑mail są najpierw dopasowywane do URL‑ów w Content Link każdego obiektu LinkedResources w kolekcji LinkedResources i rozwiązywane.
  • BaseUri jest używany przez czytnik poczty do rozwiązywania względnych adresów URL w treści oraz do rozwiązywania względnych URL‑ów linków treści w kolekcji LinkedResources.

Poniższy fragment kodu pokazuje, jak ustawić tekst alternatywny.

Określanie kodowania ciała wiadomości

Typ treści definiuje format zawartości e‑mail: zestaw znaków. Na przykład, kilka popularnych zestawów znaków dostępnych w java.nio.Charset to:

  • US-ASCII – siedmiobitowy ASCII, znany także jako ISO646-US, czyli podstawowy blok łaciński zestawu znaków Unicode
  • ISO-8859-1 – alfabet łaciński ISO nr 1, znany także jako ISO-LATIN-1
  • UTF-8 – ośmiobitowy format transformacji UCS
  • UTF-16BE – szesnasto‑bitowy format transformacji UCS, kolejność bajtów big‑endian
  • UTF-16LE – szesnasto‑bitowy format transformacji UCS, kolejność bajtów little‑endian
  • UTF-16 – szesnasto‑bitowy format transformacji UCS, kolejność bajtów określona przez opcjonalny znacznik kolejności bajtów (BOM)

Aspose.Email używa BodyEncoding właściwość klasy MailMessage służąca do określania kodowania ciała wiadomości e‑mail. Aby zakodować ciało wiadomości, wykonaj poniższe kroki:

  1. Utwórz instancję klasy MailMessage.
  2. Określ nadawcę, odbiorcę i ciało HTML e‑mail w instancji MailMessage.
  3. Określ wartość właściwości BodyEncoding.
  4. Utwórz instancję SmtpClient klasa i wyślij e‑mail używając metody Send.

Funkcje MailMessage

Ten MailMessage klasa reprezentuje zawartość wiadomości e‑mail. Instancje klasy MailMessage są używane do budowania wiadomości e‑mail, które są przesyłane do serwera SMTP w celu dostarczenia przy użyciu SmtpClient klasa. Ten artykuł pokazuje, jak używać funkcji pomocniczych klasy MailMessage do kontrolowania następujących cech e‑mail:

  • Data i czas – Poprzez klasę MailMessage setDate metoda, którą ustawiamy datę i czas e‑maila.
  • Priorytet wiadomościMailPriority klasa określająca poziomy priorytetu przy wysyłaniu wiadomości e‑mail. Może być niski, normalny lub wysoki. Priorytet wpływa na szybkość transmisji i dostarczenie.
  • Wrażliwość wiadomościMailSensitivity klasa określająca pięć poziomów wrażliwości.
  • Powiadomienie o dostarczeniu – Powiadomienia o dostarczeniu informują nadawcę, że wysłany e‑mail dotarł do skrzynki odbiorczej odbiorcy.

Domyślnie data jest rzeczywistą datą wysłania wiadomości, a czas to czas jej wysłania, jak wyświetla Microsoft Outlook. Jednak rzeczywisty czas dostarczenia e‑mail jest dodawany przez sam serwer SMTP w nagłówku wiadomości. Na przykład poniżej znajduje się typowy nagłówek, w którym pole Date zostało ustawione przy użyciu MailMessage.setDate.

Poniższy fragment kodu ilustruje, jak można używać każdej z wymienionych wyżej funkcji.

Żądanie potwierdzenia odczytu

Poniższe przykłady programistyczne pokazują, jak można poprosić o potwierdzenie odczytu. Klasa MailMessage DeliveryNotificationOptions Właściwość wyliczeniowa opisuje opcje powiadomienia o doręczeniu dla wiadomości e-mail. Aby poprosić o potwierdzenie odczytu po wysłaniu wiadomości e-mail, wykonaj następujące kroki:

  1. Utwórz instancję klasy MailMessage.
  2. Określ nadawcę, odbiorcę i ciało HTML e‑mail w instancji MailMessage.
  3. Określ DeliveryNotificationOptions w innych instancjach MailMessage.
  4. Utwórz instancję klasy SmtpClient i wyślij e‑mail używając metody Send.

Żądania potwierdzeń odbioru nie zawsze mogą być spełnione, ponieważ:

  • Klient poczty może nie implementować tej funkcji.
  • Użytkownik końcowy może mieć tę funkcję wyłączoną.
  • Użytkownik końcowy może zdecydować się nie wysyłać go.

Poniższy fragment kodu pokazuje, jak zażądać potwierdzenia odbioru.

Ustawianie nagłówków e‑mail

Nagłówki e‑mail stanowią standard internetowy, a RFC definiuje pola nagłówków, które są zawarte w wiadomościach e‑mail w Internecie. Nagłówek e‑mail można określić przy użyciu MailMessage klasa. Powszechne typy nagłówków są zdefiniowane w HeaderType klasę. Jest to klasa zamknięta, działająca jak zwykłe wyliczenie.

Zwykle nagłówek e‑mail zawiera następujące pola:

  • To: Adresy odbiorców można podać w polu To. Odbiorcy w polu To stanowią główną grupę docelową wiadomości. Może być podanych więcej niż jeden adres odbiorcy.
  • From: To pole przedstawia adres e‑mail nadawcy wiadomości.
  • Cc: Umożliwia użytkownikom wysłanie wiadomości jako „Carbon Copy” lub „Courtesy Copy”. Oznacza to, że odbiorca nie jest zobowiązany do odpowiedzi ani działania. Typowo, przełożeni są powiadamiani za pomocą CC.
  • Bcc: Oznacza Blind Carbon Copy, czyli ukryte kopie. Odnosi się do praktyki wysyłania wiadomości do wielu odbiorców w taki sposób, że ich kopia nie zawiera pełnej listy adresatów. Służy do ukrytego powiadamiania.
  • ReplyTo: To pole nagłówka ma wskazywać, gdzie nadawca chce otrzymywać odpowiedzi.
  • Subject: Tytuł, nagłówek, temat. Często używany jako wskaźnik wątku dla wiadomości będących odpowiedzią lub komentarzem do innych wiadomości.
  • Date: Ten nagłówek określa datę (i godzinę). Zwykle jest to data, w której wiadomość została utworzona i wysłana.
  • XMailer: Informacje o oprogramowaniu klienckim nadawcy. Przykład: X-Mailer: Aspose.Email XMailer jest używany przez klientów poczty. Różne programy pocztowe będą miały różne wartości XMailer. Wartość XMailer w MS Outlook to Microsoft Office Outlook, Build 11.0.5510. Jest ona ignorowana przez odbiorcę wiadomości lub program do odczytu e‑mail.

Zwykle nagłówek e-mail wygląda mniej więcej tak:


 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

Aby dostosować nagłówek e-mail, wykonaj następujące kroki:

  • Utwórz instancję MailMessage klasa.
  • Określ pola To, From, CC, Bcc, ReplyTo, Subject, Date oraz XMailer przy użyciu instancji klasy MailMessage.
  • Utwórz instancję MimeHeader klasę i określ tajny nagłówek.
  • Dodaj tajny nagłówek do instancji MailMessage.

W poniższym kodzie dostosowaliśmy nagłówek e-mail.

Powyższy fragment kodu generuje nagłówek e‑mail w następującym formacie. Można to zobaczyć, otwierając plik MsgHeaders.msg w Microsoft Outlook i przeglądając jego właściwości.


 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

Wstawianie nagłówka w określonym miejscu

Ten Add metoda klasy HeadersCollection wstawia nagłówek na końcu kolekcji. Czasami jednak konieczne może być wstawienie nagłówka w określone miejsce. W takim wypadku metoda Add nie pomoże. Aby to osiągnąć, użyj Insert metody klasy HeadersCollection. Jeśli kolekcja zawiera nagłówki o tej samej nazwie, ten nagłówek zostanie wstawiony przed innymi nagłówkami o tej samej nazwie. Poniżej znajduje się sygnatura metody Insert oraz przykładowy kod jej użycia.


 Method Signature

HeaderCollection.insert(String name, String value)

Dodawanie własnych nagłówków do e‑mail

Poniższe przykłady programistyczne pokazują, jak określić własny nagłówek w wiadomości e‑mail. Nagłówek e‑mail można określić przy użyciu klasy MailMessage. Aby określić własny nagłówek w wiadomości e‑mail, wykonaj następujące kroki:

  1. Utwórz instancję klasy MailMessage.
  2. Określ wartości to, from i subject przy użyciu instancji MailMessage.
  3. Dodaj tajny nagłówek do instancji MailMessage.
  4. Utwórz instancję klasy SmtpClient i wyślij e‑mail używając metody Send.

Poniższy fragment kodu pokazuje, jak dodać własne nagłówki do e‑mail.

Podpisywanie e‑mail przy pomocy DKIM

Aspose.Email umożliwia podpisywanie e‑mail przy użyciu DKIM (DomainKeys Identified Mail). Pozwala to organizacji wziąć odpowiedzialność za wiadomość będącą w tranzycie (o DKIM). DKIM dodaje cyfrowy podpis do nagłówków wiadomości e‑mail, który może być zweryfikowany przez odbiorców. Klucz publiczny nadawcy umożliwia odbiorcy sprawdzenie, czy podpis pasuje do treści wiadomości. Klasa MailMessage dKIMSign metoda służy do ustawiania informacji kryptograficznych i podpisu służących do podpisywania wiadomości. Poniższy fragment kodu pokazuje, jak podpisywać e‑maile przy użyciu DKIM.

Wykonywanie scalania poczty

Scalanie poczty pomaga tworzyć i wysyłać zestaw podobnych wiadomości e‑mail. Główna treść e‑maili jest taka sama, ale zawartość może być spersonalizowana. Zazwyczaj używa się danych kontaktowych odbiorcy (imię, nazwisko, firma itp.) do personalizacji e‑maila.

|todo:image_alt_text| | :- | |Rysunek: Ilustracja działania scalania poczty|

Aby wykonać scalanie poczty przy użyciu Aspose.Email, wykonaj następujące kroki:

  1. Utwórz funkcję o nazwie signature
  2. Utwórz instancję MailMessage klasa.
  3. Określ nadawcę, odbiorcę, temat i treść.
  4. Utwórz podpis na końcu e‑mail.
  5. Utwórz instancję TemplateRoutine klasie i przekaż mu MailMessage instancję.
  6. Pobierz podpis w TemplateRoutine instancję.
  7. Utwórz instancję DataTable klasa.
  8. Dodaj kolumny Receipt, FirstName i LastName jako źródła danych w klasie DataTable
  9. Utwórz instancję DataRow klasa
  10. Określ adres potwierdzenia, imię i nazwisko w obiekcie DataRow
  11. Utwórz instancję MailMessageCollection klasa
  12. Określ TemplateRoutine oraz instancje DataTable w MailMessageCollection instancję.
  13. Utwórz instancję SmtpClient klasy i określ serwer, port, nazwę użytkownika oraz hasło
  14. Wysyłaj e‑maile przy użyciu SmtpClient metodę klasy BulkSendAsync

Poniższy kod wysyła e‑mail do jednej osoby od trzech innych.