diff --git a/ReadMe.md b/ReadMe.md new file mode 100644 index 0000000..2d0f47e --- /dev/null +++ b/ReadMe.md @@ -0,0 +1,59 @@ +# MailService + +## Overview + +MailService is a simple C# console application that demonstrates how to send plain text and HTML emails using SMTP settings defined in a configuration file. The application reads SMTP settings from a JSON file (`appsettings.json`), and uses these settings to send emails through an `SmtpClient`. + +## Features + +- Send plain text emails. +- Send HTML emails using an HTML template file. +- Replace placeholders in the HTML template with actual values. + +## Project Structure + +- `Program.cs`: The main entry point of the application. It reads the SMTP settings from `appsettings.json`, initializes the `MailService`, and sends both plain text and HTML emails. +- `SmtpSettings.cs`: A class that holds the SMTP configuration settings. +- `MailService.cs`: A class that handles the logic for sending emails. +- `appsettings.json`: A JSON file that contains the SMTP configuration settings. +- `email.html`: An HTML template file used for sending HTML emails. + +## Configuration + +The SMTP settings are stored in the `appsettings.json` file. Here is an example configuration: + +```json +{ + "smtpServer": "smtp.office365.com", + "smtpPort": 587, + "smtpUser": "user", + "smtpPassword": "smtpPassword", + "smtpFrom": "smpt@service.com" +} +``` + +## Usage + +1. Clone the repository and navigate to the project directory. +2. Ensure the `appsettings.json` file is correctly configured with your SMTP settings. +3. Run the application using your preferred IDE or the .NET CLI. + +### Sending Emails + +The application sends two types of emails: + +1. **Plain Text Email**: + - Sent using the `SendEmailText` method in `MailService`. + - Example: `await mailService.SendEmailText("user@user.com", "Hello World", "Hello World from C#!");` + +2. **HTML Email**: + - Sent using the `SendEmailHtmlFile` method in `MailService`. + - The method searches for placeholders in the format `{keyValue}` within the HTML template and replaces them with the corresponding values from the provided dictionary. + - Example: + ```csharp + Dictionary replacements = new Dictionary + { + { "name", "Jonas" } + }; + await mailService.SendEmailHtmlFile("user@user.com", "Hello World", "email.html", replacements); + ```