//Tạo 1 console empty project
//Có thể add hoặc không 1 file *.cs
//copy và paste đoạn mã sau vào:
using System.ComponentModel; {
{
}
{
// Get the unique identifier for this asynchronous operation.
{
Console.WriteLine("[{0}] Send canceled.", token);
}
{
Console.WriteLine("[{0}] {1}", token, e.Error.ToString());
}
{
Console.WriteLine("Message sent.");
}
}
{
// Command line argument must the the SMTP host.
SmtpClient client
= new SmtpClient
(args
[0]); // Specify the e-mail sender.
// Create a mailing address that includes a UTF8 character
// in the display name.
MailAddress
from = new MailAddress
("email người gửi",
"Tên người gửi", System.Text.Encoding.UTF8);
// Set destinations for the e-mail message.
MailAddress to
= new MailAddress
("email người nhận"); // Specify the message content.
MailMessage message
= new MailMessage
(from, to
); message.Body = "Nội dung thư";
message.BodyEncoding = System.Text.Encoding.UTF8;
message.Subject = "Tên bức thư";
message.SubjectEncoding = System.Text.Encoding.UTF8;
// Set the method that is called back when the send operation ends.
client
.SendCompleted += new SendCompletedEventHandler(SendCompletedCallback);
// The userState can be any object that allows your callback
// method to identify this send operation.
// For this example, the userToken is a string constant.
string userState
= "test message1"; client.SendAsync(message, userState);
Console.WriteLine("Sending message... press c to cancel mail. Press any other key to exit.");
string answer
= Console.ReadLine(); // If the user canceled the send, and mail hasn't been sent yet,
// then cancel the pending operation.
if (answer
.StartsWith("c") && mailSent
== false) {
client.SendAsyncCancel();
}
// Clean up.
message.Dispose();
Console.WriteLine("Goodbye.");
}
}
}