OTP
khá nhiều nên mình đã tìm hiểu trên mạng ở đâu chia sẽ nhiều mail để mình sữ dụng, và mình thấy bài viết này bên laptrinhvb.net chia sẽ cách nhận mail khá hay :DBài viết mày mình hướng dẫn các bạn cách sử dụng
Temp Mail Service Api trên C#, 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ó
https://www.1secmail.com/api/
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; } } }
Qua đoạn code bên trên mọi người cũng biết thêm bớt gì rồi chứ.
Chúc mọi người thành công với thủ thuật trên.
PASSWORD:
HUNG.PRO.VN
Theo: LapTrinhVB.Net
Comments
(y)
ReplyDelete