Na tym blogu dowiesz się, jak tworzyć wiadomości e-mail programu Outlook (w tym MSG, EML, EMLX lub MHTML) w języku C#. Pokażemy również, jak wysyłać wiadomości e-mail synchronicznie lub asynchronicznie przy użyciu języka C# w .NET lub .NET Core.

C# wyślij e-mail z programu Outlook

Poczta e-mail stała się głównym źródłem wymiany wiadomości i udostępniania treści, takich jak dokumenty, obrazy lub inne typy plików. Częstotliwość korzystania z wiadomości e-mail jest bardziej związana z systemami online do udostępniania ważnych powiadomień lub dokumentów wielu podmiotom. W takich przypadkach przygotowanie szablonu i ręczne wysyłanie wiadomości e-mail do wielu interesariuszy może być czasochłonnym i gorączkowym zadaniem.

Tutaj pojawia się potrzeba usługi automatyzacji poczty e-mail, za pomocą której można bezproblemowo tworzyć i wysyłać wiadomości e-mail. Dlatego w tym artykule nauczę Cię, jak tworzyć wiadomości e-mail w popularnych formatach programu Outlook i automatyzować proces wysyłania wiadomości e-mail programowo. Po przeczytaniu tego artykułu będziesz w stanie:

  • utwórz i zapisz wiadomość e-mail w języku C#,
  • utwórz wiadomość e-mail z treścią HTML w C#,
  • utwórz wiadomość e-mail z określonym kodowaniem w C#,
  • wysyłaj e-maile synchronicznie za pomocą SMTP w C#,
  • wysyłaj e-maile asynchronicznie za pomocą SMTP w C#,
  • i wysyłaj masowe wiadomości e-mail w języku C#.

Interfejs API języka C# do tworzenia i wysyłania wiadomości e-mail programu Outlook

Aby zautomatyzować proces tworzenia i wysyłania wiadomości e-mail, użyjemy Aspose.Email for .NET, który jest potężnym interfejsem API do manipulacji i przetwarzania wiadomości e-mail. Obsługuje popularne formaty wiadomości e-mail, w tym wiadomości MS Outlook, takie jak MSG, EML/EMLX itp. Możesz bezpośrednio pobrać DLL interfejsu API lub zainstalować go za pomocą NuGet Package Manager lub konsoli Menedżera pakietów w Visual Studio .

PM> Install-Package Aspose.Email

Po utworzeniu aplikacji w języku C# (konsola, ASP.NET itp.) i zainstalowaniu programu Aspose.Email dla platformy .NET można rozpocząć tworzenie i wysyłanie wiadomości e-mail w języku C#.

Utwórz wiadomość e-mail programu Outlook w języku C#

Aby tworzyć lub manipulować wiadomościami e-mail programu Outlook, Aspose.Email udostępnia klasę MailMessage. Ta klasa umożliwia ustawianie wszystkich właściwości wiadomości e-mail (Temat, Do, Od i Treść), dodawanie załączników i zapisywanie wiadomości w różnych formatach wiadomości e-mail, takich jak EML, MSG, MHTML itp. Poniżej opisano kroki tworzenia wiadomość e-mail:

  • Utwórz instancję klasy MailMessage.
  • Ustaw właściwości wiadomości.
  • Zapisz wiadomość e-mail przy użyciu metody MailMessage.Save().

Poniższy przykładowy kod pokazuje, jak utworzyć i zapisać wiadomość e-mail w języku C#.

// Utwórz nową instancję klasy MailMessage
MailMessage message = new MailMessage();

// Ustaw temat wiadomości, treść i informacje o nadawcy
message.Subject = "New message created by Aspose.Email for .NET";
message.Body = "This is the body of the email.";
message.From = new MailAddress("from@domain.com", "Sender Name", false);

// Dodaj do odbiorców i odbiorców DW
message.To.Add(new MailAddress("to1@domain.com", "Recipient 1", false));
message.CC.Add(new MailAddress("cc1@domain.com", "Recipient 3", false));

// Dodaj załączniki
message.Attachments.Add(new Attachment("word.docx"));

// Zapisz wiadomość w formatach EML, EMLX, MSG i MHTML
message.Save("EmailMessage.eml", SaveOptions.DefaultEml);
message.Save("EmailMessage.emlx", SaveOptions.CreateSaveOptions(MailMessageSaveType.EmlxFormat));
message.Save("EmailMessage.msg", SaveOptions.DefaultMsgUnicode);
message.Save("EmailMessage.mhtml", SaveOptions.DefaultMhtml);

Utwórz wiadomość e-mail programu Outlook z treścią HTML w języku C#

Tagi HTML służą do tego, aby treść wiadomości e-mail była bardziej uporządkowana, prezentowana i wzbogacona o różne elementy, takie jak tabele, obrazy, listy i tak dalej. Jeśli chcesz utworzyć wiadomość e-mail z treścią HTML, możesz użyć właściwości MailMessage.HtmlBody. Poniższy przykładowy kod pokazuje, jak utworzyć wiadomość e-mail programu Outlook z treścią HTML w języku C#.

// Utwórz nową instancję klasy MailMessage
MailMessage message = new MailMessage();

// Ustaw temat wiadomości, treść HTML i informacje o nadawcy
message.Subject = "New message created by Aspose.Email for .NET";
message.HtmlBody = "<b>This line is in bold.</b> <br/> <br/>" + "<font color=blue>This line is in blue color</font>";
message.From = new MailAddress("from@domain.com", "Sender Name", false);

// Dodaj do odbiorców i odbiorców DW
message.To.Add(new MailAddress("to1@domain.com", "Recipient 1", false));
message.CC.Add(new MailAddress("cc1@domain.com", "Recipient 3", false));

// Zapisz wiadomość w formacie EML/EMLX/MSG/MHTML
message.Save("EmailMessage.eml", SaveOptions.DefaultEml);

C# Utwórz wiadomość e-mail programu Outlook z określonym kodowaniem

Możesz także określić żądany standard kodowania, aby poinformować przeglądarkę lub aplikację e-mail o tym, jak interpretować znaki w treści wiadomości e-mail. W tym celu wykorzystywana jest właściwość MailMessage.BodyEncoding. Poniższy przykładowy kod pokazuje, jak ustawić kodowanie treści podczas tworzenia wiadomości e-mail programu Outlook przy użyciu języka C#.

// Utwórz nową instancję klasy MailMessage
MailMessage message = new MailMessage();

// Ustaw temat wiadomości, treść HTML, informacje o nadawcy i odbiorcy
message.Subject = "New message created by Aspose.Email for .NET";
message.HtmlBody = "<b>This line is in bold.</b> <br/> <br/>" + "<font color=blue>This line is in blue color</font>";
message.From = new MailAddress("from@domain.com", "Sender Name", false);
message.To.Add(new MailAddress("to1@domain.com", "Recipient 1", false));

// Określ kodowanie 
message.BodyEncoding = Encoding.ASCII;

// Zapisz wiadomość w formacie EML/EMLX/MSG/MHTML
message.Save("EmailMessage.msg", SaveOptions.DefaultMsgUnicode);

Wysyłaj wiadomości e-mail programu Outlook synchronicznie lub asynchronicznie w języku C#

Teraz, po utworzeniu wiadomości e-mail, możesz wysłać ją do odbiorców synchronicznie lub asynchronicznie. Klasa SmtpClient umożliwia wysyłanie wiadomości e-mail programu Outlook przy użyciu protokołu SMTP (Simple Mail Transfer Protocol). Poniżej przedstawiono kroki, aby wysłać wiadomość e-mail w języku C# przy użyciu Aspose.Email dla platformy .NET.

  • Utwórz lub załaduj wiadomość e-mail przy użyciu klasy MailMessage.
  • Utwórz instancję klasy SmtpClient i ustaw hosta, nazwę użytkownika, hasło i numer portu.
  • Wysyłaj wiadomości e-mail synchronicznie lub asynchronicznie, używając odpowiednio metody SmtpClient.Send lub SmtpClient.SendAsync.

Wyślij synchronicznie wiadomość e-mail z programu Outlook w języku C#

// Utwórz instancję MailMessage. Możesz utworzyć nową wiadomość lub załadować już utworzony plik wiadomości (eml, msg itp.)
MailMessage msg = MailMessage.Load("EmailMessage.msg");

// Utwórz instancję klasy SmtpClient
SmtpClient client = new SmtpClient();

// Określ hosta pocztowego, nazwę użytkownika, hasło, numer portu i opcję zabezpieczeń
client.Host = "mail.server.com";
client.Username = "username";
client.Password = "password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.SSLExplicit;
try
{
	// Wyślij ten e-mail
	client.Send(msg); 
}
catch (Exception ex)
{
	Trace.WriteLine(ex.ToString());
}

Wyślij wiadomość e-mail programu Outlook asynchronicznie w języku C#

// Utwórz instancję MailMessage. Możesz utworzyć nową wiadomość lub załadować już utworzony plik wiadomości (eml, msg itp.)
MailMessage msg = MailMessage.Load("EmailMessage.msg");

// Utwórz instancję klasy SmtpClient
SmtpClient client = new SmtpClient();

// Określ hosta pocztowego, nazwę użytkownika, hasło, numer portu i opcję zabezpieczeń
client.Host = "mail.server.com";
client.Username = "username";
client.Password = "password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.SSLExplicit;

// Określ hosta pocztowego, nazwę użytkownika, hasło, numer portu i opcję zabezpieczeń
client.Host = "mail.server.com";
client.Username = "username";
client.Password = "password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.SSLExplicit; 

// Wysłać wiadomości
client.SendAsync(msg);

Console.WriteLine("Sending message..."); 

msg.Dispose(); 

Wysyłaj masowe wiadomości e-mail w języku C#

Możesz także tworzyć i wysyłać e-maile zbiorczo. Klasa MailMessageCollection służy do przechowywania kolekcji wiadomości e-mail, które chcesz wysłać. Poniższy przykładowy kod pokazuje, jak wysyłać masowe wiadomości e-mail w języku C#.

// Utwórz SmtpClient i określ serwer, port, nazwę użytkownika i hasło
SmtpClient client = new SmtpClient("mail.server.com", 25, "Username", "Password");

// Utwórz instancje klasy MailMessage i określ Do, Od, Temat i Wiadomość
MailMessage message1 = new MailMessage("msg1@from.com", "msg1@to.com", "Subject1", "message1, how are you?");
MailMessage message2 = new MailMessage("msg1@from.com", "msg2@to.com", "Subject2", "message2, how are you?");
MailMessage message3 = new MailMessage("msg1@from.com", "msg3@to.com", "Subject3", "message3, how are you?");

// Utwórz instancję MailMessageCollection i dodaj do niej wiadomości e-mail
MailMessageCollection manyMsg = new MailMessageCollection();
manyMsg.Add(message1);
manyMsg.Add(message2);
manyMsg.Add(message3);
 
try
{  
	// Wysłać wiadomości
	client.Send(manyMsg); 
}
catch (Exception ex)
{
	Trace.WriteLine(ex.ToString());
}

Aspose Email API dla C# — demonstracje na żywo

Wniosek

W tym artykule nauczyłeś się, jak tworzyć wiadomości e-mail programu Outlook w języku C#. Ponadto widziałeś, jak wysyłać wiadomości e-mail synchronicznie lub asynchronicznie z poziomu aplikacji .NET. Możesz przejrzeć dokumentację Aspose.Email for .NET, aby dowiedzieć się więcej o interfejsie API.

Zobacz też

Dodaj i zaktualizuj reguły skrzynki odbiorczej na MS Exchange Server w C#Dodawanie i usuwanie członków na listach dystrybucyjnych MS Exchange w JavieWyślij dokument programu Word w treści wiadomości e-mail przy użyciu języka C#
Dodaj i zaktualizuj reguły skrzynki odbiorczej na MS Exchange Server w JavieDodawanie, aktualizowanie i usuwanie kontaktów z serwera Microsoft Exchange w języku C#Dodaj, zaktualizuj i usuń kontakty z Microsoft Exchange Server w Javie
Dodawanie i usuwanie członków na listach dystrybucyjnych MS Exchange w języku C#Wysyłanie wiadomości e-mail przez SMTP w Python