I den här bloggen kommer du att lära dig hur du skapar Outlook-e-postmeddelanden (inklusive MSG, EML, EMLX eller MHTML) i C#. Vi kommer också att visa hur man skickar e-post synkront eller asynkront med C# i .NET eller .NET Core.

C# skicka Outlook-e-post

E-postmeddelandet har blivit en primär källa för att utbyta meddelanden och dela innehåll som dokument, bilder eller andra typer av filer. Frekvensen av att använda e-post är mer inom onlinesystemen för att dela viktiga meddelanden eller dokument med flera enheter. I sådana fall kan det vara en tidskrävande och hektisk uppgift att förbereda en mall och skicka e-postmeddelanden till flera intressenter manuellt.

Här kommer behovet av en e-postautomatiseringstjänst med vilken du kan skapa och skicka e-postmeddelanden sömlöst. Så i den här artikeln kommer jag att lära dig hur du skapar e-postmeddelanden i populära Outlook-format och automatiserar processen att skicka e-postmeddelanden programmatiskt. Efter att ha läst den här artikeln kommer du att kunna:

  • skapa och spara ett e-postmeddelande i C#,
  • skapa ett e-postmeddelande med HTML-text i C#,
  • skapa ett e-postmeddelande med en viss kodning i C#,
  • skicka e-post synkront med SMTP i C#,
  • skicka e-post asynkront med SMTP i C#,
  • och skicka massmail i C#.

C# API för att skapa och skicka Outlook-e-post

För att automatisera processen att skapa och skicka e-postmeddelanden kommer vi att använda Aspose.Email for .NET som är ett kraftfullt e-postmanipulerings- och bearbetnings-API. Den stöder populära e-postformat inklusive MS Outlook-meddelanden som MSG, EML/EMLX, etc. Du kan direkt ladda ner API:s DLL eller installera den via NuGet Package Manager eller Package Manager Console i Visual Studio .

PM> Install-Package Aspose.Email

Efter att du har skapat ett C#-program (Console, ASP.NET, etc.) och installerat Aspose.Email för .NET, kan du börja skapa och skicka e-postmeddelanden i C#.

Skapa ett Outlook-e-postmeddelande i C#

För att skapa eller manipulera Outlook-e-postmeddelanden tillhandahåller Aspose.Email klassen MailMessage. Den här klassen låter dig ställa in alla egenskaper för ett e-postmeddelande (Ämne, Till, Från och Bröd), lägga till bilagor och spara meddelandet i olika e-postformat som EML, MSG, MHTML, etc. Följande är stegen för att skapa ett e-postmeddelande:

  • Skapa en instans av klassen MailMessage.
  • Ställ in meddelandets egenskaper.
  • Spara e-postmeddelandet med metoden MailMessage.Save().

Följande kodexempel visar hur man skapar och sparar ett e-postmeddelande i C#.

// Skapa en ny instans av klassen MailMessage
MailMessage message = new MailMessage();

// Ange ämne för meddelandet, text och avsändarinformation
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);

// Lägg till till mottagare och CC-mottagare
message.To.Add(new MailAddress("to1@domain.com", "Recipient 1", false));
message.CC.Add(new MailAddress("cc1@domain.com", "Recipient 3", false));

// Lägg till bilagor
message.Attachments.Add(new Attachment("word.docx"));

// Spara meddelande i EML-, EMLX-, MSG- och MHTML-format
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);

Skapa ett Outlook-e-postmeddelande med HTML Body i C#

HTML-taggarna används för att göra e-posttexten mer strukturerad, presentabel och berikad med olika element som tabeller, bilder, listor och så vidare. Om du vill skapa ett e-postmeddelande med HTML-text kan du använda egenskapen MailMessage.HtmlBody. Följande kodexempel visar hur du skapar ett Outlook-e-postmeddelande med HTML-text i C#.

// Skapa en ny instans av klassen MailMessage
MailMessage message = new MailMessage();

// Ange ämne för meddelandet, HTML-text och avsändarinformation
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);

// Lägg till till mottagare och CC-mottagare
message.To.Add(new MailAddress("to1@domain.com", "Recipient 1", false));
message.CC.Add(new MailAddress("cc1@domain.com", "Recipient 3", false));

// Spara meddelande i EML/EMLX/MSG/MHTML-format
message.Save("EmailMessage.eml", SaveOptions.DefaultEml);

C# Skapa ett Outlook-e-postmeddelande med en särskild kodning

Du kan också ange önskad kodningsstandard för att berätta för webbläsaren eller e-postprogrammet om hur man tolkar tecknen i e-postmeddelandets brödtext. Egenskapen MailMessage.BodyEncoding används för detta ändamål. Följande kodexempel visar hur du ställer in kroppskodning när du skapar ett Outlook-e-postmeddelande med C#.

// Skapa en ny instans av klassen MailMessage
MailMessage message = new MailMessage();

// Ange ämne för meddelandet, HTML-text, avsändare och mottagare
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));

// Ange kodning 
message.BodyEncoding = Encoding.ASCII;

// Spara meddelande i EML/EMLX/MSG/MHTML-format
message.Save("EmailMessage.msg", SaveOptions.DefaultMsgUnicode);

Skicka Outlook-e-post synkront eller asynkront i C#

Nu, när du har skapat e-postmeddelandet, kan du skicka det till dess mottagare synkront eller asynkront. Klassen SmtpClient låter dig skicka Outlook-e-postmeddelanden med SMTP (Simple Mail Transfer Protocol). Följande är stegen för att skicka ett e-postmeddelande i C# med Aspose.Email för .NET.

  • Skapa eller ladda ett e-postmeddelande med klassen MailMessage.
  • Skapa en instans av SmtpClient-klassen och ställ in värd, användarnamn, lösenord och portnummer.
  • Skicka e-post synkront eller asynkront med metoden SmtpClient.Send respektive SmtpClient.SendAsync.

Skicka ett Outlook-e-postmeddelande synkront i C#

// Skapa MailMessage-instans. Du kan skapa ett nytt meddelande eller ladda en redan skapad meddelandefil (eml, msg, etc.)
MailMessage msg = MailMessage.Load("EmailMessage.msg");

// Skapa en instans av klassen SmtpClient
SmtpClient client = new SmtpClient();

// Ange din postvärd, användarnamn, lösenord, portnr och säkerhetsalternativ
client.Host = "mail.server.com";
client.Username = "username";
client.Password = "password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.SSLExplicit;
try
{
	// Skicka detta mejl
	client.Send(msg); 
}
catch (Exception ex)
{
	Trace.WriteLine(ex.ToString());
}

Skicka ett Outlook-e-postmeddelande asynkront i C#

// Skapa MailMessage-instans. Du kan skapa ett nytt meddelande eller ladda en redan skapad meddelandefil (eml, msg, etc.)
MailMessage msg = MailMessage.Load("EmailMessage.msg");

// Skapa en instans av klassen SmtpClient
SmtpClient client = new SmtpClient();

// Ange din postvärd, användarnamn, lösenord, portnr och säkerhetsalternativ
client.Host = "mail.server.com";
client.Username = "username";
client.Password = "password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.SSLExplicit;

// Ange din postvärd, användarnamn, lösenord, portnr och säkerhetsalternativ
client.Host = "mail.server.com";
client.Username = "username";
client.Password = "password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.SSLExplicit; 

// Skicka meddelanden
client.SendAsync(msg);

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

msg.Dispose(); 

Skicka massmeddelanden i C#

Du kan också skapa och skicka e-postmeddelanden samtidigt. Klassen MailMessageCollection används för att innehålla samlingen av e-postmeddelanden du vill skicka. Följande kodexempel visar hur man skickar massmeddelanden i C#.

// Skapa SmtpClient och ange server, port, användarnamn och lösenord
SmtpClient client = new SmtpClient("mail.server.com", 25, "Username", "Password");

// Skapa instanser av klassen MailMessage och ange Till, Från, Ämne och Meddelande
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?");

// Skapa en instans av MailMessageCollection och lägg till e-postmeddelanden till den
MailMessageCollection manyMsg = new MailMessageCollection();
manyMsg.Add(message1);
manyMsg.Add(message2);
manyMsg.Add(message3);
 
try
{  
	// Skicka meddelanden
	client.Send(manyMsg); 
}
catch (Exception ex)
{
	Trace.WriteLine(ex.ToString());
}

Aspose Email API för C# - Live Demos

Slutsats

I den här artikeln har du lärt dig hur du skapar Outlook-e-postmeddelanden i C#. Dessutom har du sett hur du skickar e-postmeddelanden synkront eller asynkront från .NET-applikationer. Du kan utforska dokumentationen av Aspose.Email för .NET för att lära dig mer om API:et.

Se även

Lägg till och uppdatera inkorgsregler på MS Exchange Server i C#Lägg till och ta bort medlemmar i MS Exchange-distributionslistor i JavaSkicka Word-dokument i e-posttexten med C#
Lägg till och uppdatera regler för inkorg på MS Exchange Server i JavaLägg till, uppdatera och ta bort kontakter från Microsoft Exchange Server i C#Lägg till, uppdatera och ta bort kontakter från Microsoft Exchange Server i Java
Lägg till och ta bort medlemmar i MS Exchange-distributionslistor i C#Skicka e-postmeddelanden via SMTP i Python