[C#] Send email from WebApi by .NetCore, EmailKit, Docker 🌹

Macus.y
2 min readApr 27, 2021

--

จะมาแนะนำการส่ง Email จาก Web Api โดยใช้ MailKit Package โดย Run บน Container แนะนำการใช้ EnvironmentVariable ช่วยให้เราไม่ต้องเก็บ ข้อมูลสำคัญเช่น Email, Password ไว้ใน Code เพื่อความปลอดภัยของ ข้อมูลสำคัญ อีกวิธีหนึ่ง และมีการใช้ LoremNET Package เพื่อช่วย Random Paragraph ใช้ในการส่ง Email

1. Create webapi

$ dotnet new webapi -o email-sender-demo$ cd email-sender-demo//add package
$ dotnet add package MailKit

2. Create File EmailSeder.cs in root project

สร้าง Interface และ Class ตาม File นี้ ลองสังเกตุดูใน File นี้ บรรทัดที่ 16, 17 จะเป็นการเรียกใช้ Value จาก EnvironmentVariable

EmailSeder.cs

3. Edit File Startup.cs in ConfigureServices method

Inject EmailSenderService ที่บรรทัด 23

4. Create EmailSenderController.cs

ติดตั้ง Package เพิ่มเติมอีกนิดหนึ่ง

$ dotnet add package LoremNET

5. สร้าง Dockerfile และ docker-compose.yml

สร้าง Dockerfile และ docker-compose.yml ด้วย Extension ของ VS Code
Install Extension Docker ตามในรูป

[Key] Ctrl + Shift + P แล้วก็ทำตามในรูปด้านล่าง

เสร็จแล้วเราก็จะได้ Dockerfile และ DockerCompose File ให้เราแก้ไขเพิ่มเติมส่วนของ environment และ ports

6. Start Container

$ docker compose up -d — build
docker compose up -d — build

รอสักพัก เมื่อ Build Image เรียบร้อย Start Container เรียบร้อย Run Command

$ docker ps
จะเห็น Container Run เรียบร้อย

เมื่อ Container Run เรียบร้อยแล้วให้เราเข้าไปที่ Path
http://localhost:5000/EmailSender/sendsampleemail?toEmail=<<toemail@gmail.com>>&fromEmail=<<fromEmail@gmail.com>>
(ให้แก้ไข <<toemail@gmail.com>>, <<fromEmail@gmail.com>>)
เพิ่มส่ง Email

ส่ง Email สำเร็จ

Check Email มี Email เข้ามา พร้อมกับเนื้อหาที่ถูก Random ส่งมาให้จริงถือเป็นจบงาน 😁😁

ขอบคุณที่เข้ามาอ่านจนจบนะครับ ✌✌✌

Source Code : email-sender-demo.git

--

--

Macus.y
Macus.y

Written by Macus.y

“Many of life’s failures are people who did not realize how close they were to success when they gave up.”– Thomas A. Edison 😇😇😇

No responses yet