Tworzenie i ustawianie treści e‑maili

Utwórz nową wiadomość e‑mail

Klasa MailMessage reprezentuje wiadomość e‑mail i umożliwia programistom tworzenie nowych wiadomości e‑mail. Podstawowe właściwości e‑mail, takie jak From, To, Subject i body, mogą być łatwo ustawione w nowo utworzonej wiadomości. Podobnie możemy zapisać wiadomość w różnych formatach, takich jak EML, MSG i MHTML.

  • Utwórz instancję klasy MailMessage.
  • Ustaw właściwości wiadomości e‑mail.
  • Zapisz wiadomość e‑mail w różnych formatach.

Poniższy fragment kodu pokazuje, jak utworzyć nowy e‑mail z różnymi właściwościami.

Określanie wielu odbiorców

MailMessage reprezentuje wiadomość e‑mail. Instancje klasy MailMessage są używane do konstruowania wiadomości e‑mail, które są przesyłane do serwera SMTP przy użyciu klasy SmtpClient. Ten temat pokazuje, jak określić więcej niż jeden adres e‑mail. Adresy e‑mail można podawać za pomocą 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 kodu demonstrują, jak zamienić adresy e‑mail na przyjazne nazwy w wiadomości e‑mail. Przyjazna nazwa to nazwa bardziej przystępna dla człowieka niż adres e‑mail, np. John Smith zamiast js346@domain.com. Podczas wysyłania e‑maila możemy powiązać przyjazną nazwę z adresem e‑mail w konstruktorze klasy MailMessage.

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

Klasa MailMessage reprezentuje wiadomość e‑mail. Instancje klasy MailMessage są używane do konstruowania wiadomości e‑mail, które są przesyłane do serwera SMTP w celu dostarczenia przy użyciu klasy SmtpClient. Ciało wiadomości może być określone przy użyciu klasy MailMessage. E‑mail może mieć wiele ciał. W klasie MailMessage istnieją dwa typy ciał wiadomości:

  • Treść HTML
  • Treść tekstowa

Oprócz HtmlBody i TextBody, Aspose.Email posiada jeszcze dwie właściwości tylko do odczytu związane z ciałem poczty:

  • IsBodyText: informuje, czy ciało jest tekstem.
  • IsBodyHtml: informuje, czy ciało jest w formacie HTML, czy zwykłym tekście.

Ten artykuł pokazuje, jak zdefiniować tekst zwykły lub HTML jako treść, ustawić tekst alternatywny i zakodować treść e‑maila.

Ustawianie ciała HTML

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

Ustawianie tekstu alternatywnego

Użyj klasy AlternateView, aby określić kopie wiadomości e‑mail w różnych formatach. Na przykład, jeśli wysyłasz wiadomość w HTML, możesz także dostarczyć wersję w zwykłym tekście, na wypadek gdyby niektórzy odbiorcy używali klientów poczty, które nie wyświetlają treści HTML. Ta klasa ma dwie właściwości: LinkedResources i BaseUri, które służą do rozwiązywania URL‑ów w treści e‑maila.

  • LinkedResources to kolekcja obiektów LinkedResources. Podczas renderowania, URL‑e w treści e‑maila 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.

Funkcje MailMessage

Ten MailMessage klasa reprezentuje treść wiadomości e‑mail. Instancje MailMessage klasa jest używana do budowy wiadomości e‑mail, która jest przesyłana do serwera SMTP w celu dostarczenia przy użyciu SmtpClient klasa. Ten artykuł pokazuje, jak używać MailMessage klasa zawiera funkcje narzędziowe do kontrolowania następujących funkcji e‑mail:

  • Data i godzina – poprzez  MailMessage Właściwość klasy Date umożliwia odczyt lub ustawienie daty i godziny wiadomości e‑mail.
  • Priorytet wiadomości – MailPriority 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ści – MailSensitivity 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ą, kiedy wiadomość została wysłana, a godzina – czasem jej wysłania, tak jak wyświetla to Microsoft Outlook. Jednak rzeczywisty czas dostarczenia e‑maila jest dodawany przez sam serwer SMTP w nagłówku wiadomości. Na przykład poniżej znajduje się typowy nagłówek poczty, w którym pole Date ustawia datę.

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

Żądanie potwierdzenia odczytu

Poniższe przykłady kodu pokazują, jak możesz żądać potwierdzenia odczytu.  MailMessage klasa DeliveryNotificationOptions Właściwość wyliczeniowa opisuje opcje powiadomień o dostarczeniu wiadomości e‑mail. Aby żądać potwierdzenia odczytu po wysłaniu wiadomości, wykonaj następujące kroki:

  1. Utwórz instancję MailMessage klasa.
  2. Określ nadawcę, odbiorcę i treść HTML dla e‑maila w MailMessage instancję.
  3. Określ DeliveryNotificationOptions w innych MailMessage instancje.
  4. Utwórz instancję SmtpClient klasa 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że być określony przy użyciu klasy MailMessage. Powszechne typy nagłówków są zdefiniowane w klasie HeaderType. Jest to klasa zamknięta działająca jak zwykła enumeracja.

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

  • Do: 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 To, From, CC, Bcc, ReplyTo, Subject, Date i XMailer używając instancji MailMessage.
  • Utwórz instancję MimeHeader klasę i określ tajny nagłówek.
  • Dodaj tajny nagłówek do MailMessage instancję.

Poniższy fragment kodu pokazuje, jak ustawić nagłówki e‑mail.

Powyższy fragment kodu generuje nagłówek e‑mail w następującym formacie. Można to zobaczyć, otwierając powstały plik "MsgHeaders.msg" w Microsoft Outlook i przeglądając 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 HeadersCollection klasa wstawia nagłówek na końcu kolekcji. Czasami jednak może być konieczne wstawienie nagłówka w określonym miejscu. W takim wypadku, Add metoda nie będzie pomocna. Aby to osiągnąć, użyj Insert metoda 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ższy fragment kodu pokazuje, jak wstawić nagłówek w określonym miejscu.

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

Poniższe przykłady kodu pokazują, jak określić niestandardowy nagłówek w wiadomości e‑mail. Nagłówek e‑mail może być określony przy użyciu MailMessage klasy. Aby określić niestandardowy nagłówek w wiadomości e‑mail, postępuj zgodnie z następującymi krokami:

  1. Utwórz instancję MailMessage klasa.
  2. Określ wartości to, from i subject przy użyciu instancji MailMessage.
  3. Dodaj tajny nagłówek do MailMessage instancję.
  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.