- [C#] Chia sẻ source code phần mềm đếm số trang tập tin file PDF
- [C#] Cách Sử Dụng DeviceId trong C# Để Tạo Khóa Cho Ứng Dụng
- [SQLSERVER] Loại bỏ Restricted User trên database MSSQL
- [C#] Hướng dẫn tạo mã QRcode Style trên winform
- [C#] Hướng dẫn sử dụng temp mail service api trên winform
- [C#] Hướng dẫn tạo mã thanh toán VietQR Pay không sử dụng API trên winform
- [C#] Hướng Dẫn Tạo Windows Service Đơn Giản Bằng Topshelf
- [C#] Chia sẻ source code đọc dữ liệu từ Google Sheet trên winform
- [C#] Chia sẻ source code tạo mã QR MOMO đa năng Winform
- [C#] Chia sẻ source code phần mềm lên lịch tự động chạy ứng dụng Scheduler Task Winform
- [Phần mềm] Tải và cài đặt phần mềm Sublime Text 4180 full version
- [C#] Hướng dẫn download file từ Minio Server Winform
- [C#] Hướng dẫn đăng nhập zalo login sử dụng API v4 trên winform
- [SOFTWARE] Phần mềm gởi tin nhắn Zalo Marketing Pro giá rẻ mềm nhất thị trường
- [C#] Việt hóa Text Button trên MessageBox Dialog Winform
- [DEVEXPRESS] Chia sẻ code các tạo report in nhiều hóa đơn trên XtraReport C#
- [POWER AUTOMATE] Hướng dẫn gởi tin nhắn zalo từ file Excel - No code
- [C#] Chia sẻ code lock và unlock user trong domain Window
- [DEVEXPRESS] Vẽ Biểu Đồ Stock Chứng Khoán - Công Cụ Thiết Yếu Cho Nhà Đầu Tư trên Winform
- [C#] Hướng dẫn bảo mật ứng dụng 2FA (Multi-factor Authentication) trên Winform
[C#] Hướng dẫn sử dụng temp mail service api trên winform
Xin chào các bạn, bài viết hôm nay mình tiếp tục hướng dẫn các bạn cách sử dụng Temp Mail Service Api trên C#, Winform.
[C#] How to use Temp Mail Service in Winform
Trong ứng dụng này, mình sử dụng API 1sec Mail.
Chi tiết, các bạn có thể tham khảo tài liệu API của nó.
Vậy Temp Mail là gì? và tại sao lại sử dụng temp mail.
Temp Mail (email tạm thời) là một loại dịch vụ email cung cấp cho người dùng một địa chỉ email tạm thời, ngắn hạn để nhận thư.
Sau một khoảng thời gian nhất định hoặc sau khi người dùng không cần sử dụng nữa, địa chỉ email này sẽ tự động hết hiệu lực và bị xoá.
Temp mail thường được dùng trong các tình huống khi bạn không muốn tiết lộ địa chỉ email thật của mình hoặc tránh bị spam.
Hình ảnh ứng dụng:
Tại sao nên sử dụng Temp Mail?
-
Bảo vệ quyền riêng tư
Khi đăng ký các dịch vụ trực tuyến, nhiều trang web yêu cầu địa chỉ email để gửi thông tin xác thực hoặc thông báo. Nếu bạn không muốn chia sẻ email chính của mình để tránh bị theo dõi hoặc bị làm phiền, temp mail sẽ giúp bạn giữ quyền riêng tư. -
Tránh thư rác (spam)
Temp mail giúp bạn tránh việc bị spam bởi các trang web hoặc dịch vụ không đáng tin cậy, vốn có thể bán địa chỉ email của bạn cho bên thứ ba. Sau khi sử dụng xong, email này sẽ biến mất, ngăn chặn mọi thư spam có thể được gửi đến. -
Đăng ký nhanh chóng
Việc tạo một địa chỉ email tạm thời chỉ mất vài giây mà không cần phải trải qua quá trình đăng ký phức tạp như với các dịch vụ email thông thường (Gmail, Outlook, Yahoo, v.v.). -
Bảo mật thông tin cá nhân
Khi bạn sử dụng một địa chỉ email tạm thời, các thông tin cá nhân của bạn (như tên, tuổi, số điện thoại) sẽ không bị gắn liền với tài khoản đó, giúp giảm thiểu nguy cơ lộ thông tin nhạy cảm. -
Tiện lợi khi sử dụng dịch vụ ngắn hạn
Temp mail rất hữu ích khi bạn chỉ cần nhận một lần thư xác thực hoặc một thông báo ngắn hạn, chẳng hạn như để kích hoạt tài khoản, tải về tài liệu, hoặc nhận mã xác nhận.
Video Demo ứng dụng:
Full source code C#:
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Net.Http;
using System.Threading.Tasks;
using System.Windows.Forms;
using Newtonsoft.Json;
namespace DemoTempEmail
{
public partial class MainForm : Form
{
private string currentEmail;
private string currentDomain;
private System.Windows.Forms.Timer mailboxTimer;
private List<EmailMessage> currentMessages;
public MainForm()
{
InitializeComponent();
mailboxTimer = new System.Windows.Forms.Timer();
mailboxTimer.Interval = 10000; // Check every 10 seconds
mailboxTimer.Tick += MailboxTimer_Tick;
currentMessages = new List<EmailMessage>();
}
private void InitializeComponent()
{
this.btnCreateEmail = new System.Windows.Forms.Button();
this.lblCurrentEmail = new System.Windows.Forms.TextBox();
this.lstMessages = new System.Windows.Forms.ListBox();
this.webBrowser1 = new System.Windows.Forms.WebBrowser();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.linkLabel1 = new System.Windows.Forms.LinkLabel();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.SuspendLayout();
//
// btnCreateEmail
//
this.btnCreateEmail.Location = new System.Drawing.Point(241, 89);
this.btnCreateEmail.Name = "btnCreateEmail";
this.btnCreateEmail.Size = new System.Drawing.Size(220, 23);
this.btnCreateEmail.TabIndex = 0;
this.btnCreateEmail.Text = "Create New Email";
this.btnCreateEmail.Click += new System.EventHandler(this.btnCreateEmail_Click);
//
// lblCurrentEmail
//
this.lblCurrentEmail.Location = new System.Drawing.Point(122, 137);
this.lblCurrentEmail.Name = "lblCurrentEmail";
this.lblCurrentEmail.Size = new System.Drawing.Size(538, 20);
this.lblCurrentEmail.TabIndex = 1;
//
// lstMessages
//
this.lstMessages.FormattingEnabled = true;
this.lstMessages.Location = new System.Drawing.Point(12, 189);
this.lstMessages.Name = "lstMessages";
this.lstMessages.Size = new System.Drawing.Size(668, 160);
this.lstMessages.TabIndex = 2;
this.lstMessages.SelectedIndexChanged += new System.EventHandler(this.lstMessages_SelectedIndexChanged);
//
// webBrowser1
//
this.webBrowser1.Location = new System.Drawing.Point(12, 355);
this.webBrowser1.MinimumSize = new System.Drawing.Size(20, 20);
this.webBrowser1.Name = "webBrowser1";
this.webBrowser1.ScriptErrorsSuppressed = true;
this.webBrowser1.Size = new System.Drawing.Size(668, 339);
this.webBrowser1.TabIndex = 3;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(14, 140);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(102, 13);
this.label1.TabIndex = 4;
this.label1.Text = "Email temp Address:";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(0)))));
this.label2.Location = new System.Drawing.Point(164, 25);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(359, 24);
this.label2.TabIndex = 5;
this.label2.Text = "TEMP EMAIL C# - LAPTRINHVB.NET";
//
// pictureBox1
//
this.pictureBox1.Image = global::DemoTempEmail.Properties.Resources.logo;
this.pictureBox1.Location = new System.Drawing.Point(560, 25);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(100, 87);
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.pictureBox1.TabIndex = 6;
this.pictureBox1.TabStop = false;
//
// linkLabel1
//
this.linkLabel1.AutoSize = true;
this.linkLabel1.Location = new System.Drawing.Point(13, 72);
this.linkLabel1.Name = "linkLabel1";
this.linkLabel1.Size = new System.Drawing.Size(107, 13);
this.linkLabel1.TabIndex = 7;
this.linkLabel1.TabStop = true;
this.linkLabel1.Text = "https://laptrinhvb.net";
this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked);
//
// MainForm
//
this.ClientSize = new System.Drawing.Size(692, 706);
this.Controls.Add(this.linkLabel1);
this.Controls.Add(this.pictureBox1);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.Controls.Add(this.webBrowser1);
this.Controls.Add(this.btnCreateEmail);
this.Controls.Add(this.lblCurrentEmail);
this.Controls.Add(this.lstMessages);
this.Name = "MainForm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "[C#] Temp Email Inbox - https://laptrinhvb.net";
this.Load += new System.EventHandler(this.MainForm_Load);
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
private System.Windows.Forms.Button btnCreateEmail;
private System.Windows.Forms.TextBox lblCurrentEmail;
private System.Windows.Forms.ListBox lstMessages;
private async void btnCreateEmail_Click(object sender, EventArgs e)
{
try
{
var email = await GenerateRandomEmail();
currentEmail = email.Split('@')[0];
currentDomain = email.Split('@')[1];
lblCurrentEmail.Text = $"{email}";
lstMessages.Items.Clear();
currentMessages.Clear();
mailboxTimer.Start();
}
catch (Exception ex)
{
MessageBox.Show($"Error generating email: {ex.Message}");
}
}
private async Task<string> GenerateRandomEmail()
{
using (var client = new HttpClient())
{
var response = await client.GetStringAsync("https://www.1secmail.com/api/v1/?action=genRandomMailbox&count=1");
var emails = JsonConvert.DeserializeObject<List<string>>(response);
return emails[0];
}
}
private async void MailboxTimer_Tick(object sender, EventArgs e)
{
try
{
var messages = await GetMessages();
UpdateMessageList(messages);
}
catch (Exception ex)
{
MessageBox.Show($"Error checking mailbox: {ex.Message}");
}
}
private async Task<List<EmailMessage>> GetMessages()
{
using (var client = new HttpClient())
{
var response = await client.GetStringAsync($"https://www.1secmail.com/api/v1/?action=getMessages&login={currentEmail}&domain={currentDomain}");
return JsonConvert.DeserializeObject<List<EmailMessage>>(response);
}
}
private void UpdateMessageList(List<EmailMessage> messages)
{
foreach (var message in messages)
{
if (!currentMessages.Exists(m => m.Id == message.Id))
{
currentMessages.Add(message);
lstMessages.Items.Add(message.Subject);
}
}
}
private async void lstMessages_SelectedIndexChanged(object sender, EventArgs e)
{
if (lstMessages.SelectedIndex != -1)
{
var selectedMessage = currentMessages[lstMessages.SelectedIndex];
try
{
var fullMessage = await GetFullMessage(selectedMessage.Id);
webBrowser1.DocumentText = fullMessage.Body;
}
catch (Exception ex)
{
MessageBox.Show($"Error fetching message details: {ex.Message}");
}
}
}
private async Task<FullEmailMessage> GetFullMessage(int id)
{
using (var client = new HttpClient())
{
var response = await client.GetStringAsync($"https://www.1secmail.com/api/v1/?action=readMessage&login={currentEmail}&domain={currentDomain}&id={id}");
return JsonConvert.DeserializeObject<FullEmailMessage>(response);
}
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Process.Start("https://laptrinhvb.net");
}
private void MainForm_Load(object sender, EventArgs e)
{
Process.Start("https://chromewebstore.google.com/detail/zalo-marketing-pro-ch%E1%BB%91ng/kgbfpnnjchndjegeckjggbgcmklefman?authuser=0&hl=vi");
}
}
public class EmailMessage
{
public int Id { get; set; }
public string From { get; set; }
public string Subject { get; set; }
public string Date { get; set; }
}
public class FullEmailMessage : EmailMessage
{
public string Body { get; set; }
public string TextBody { get; set; }
public string HtmlBody { get; set; }
}
}
Thanks for watching!