1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
| using System;
using System.Net;
using System.Net.Mail;
using System.Net.Mime;
using System.Threading;
using System.ComponentModel;
namespace Examples.SmptExamples.Async
{
public class SimpleAsynchronousExample
{
static bool mailSent = false;
private static void SendCompletedCallback(object sender, AsyncCompletedEventArgs e)
{
// Get the unique identifier for this asynchronous operation.
String token = (string)e.UserState;
if (e.Cancelled)
{
Console.WriteLine("[{0}] Send canceled.", token);
}
if (e.Error != null)
{
Console.WriteLine("[{0}] {1}", token, e.Error.ToString());
}
else
{
Console.WriteLine("Message sent.");
}
mailSent = true;
}
public static void Main(string[] args)
{
string dest;
string pj;
dest = "...";
pj= "...";
if (args.Length <= 0)
{
EnvoyerMail(ref dest, ref pj);
}
}
public static void EnvoyerMail(ref string dest, ref string pj)
{
string chemin = @"..." ;
SmtpClient client = new SmtpClient();
client.Host = "...";
client.Credentials = new NetworkCredential("...", "...");
MailAddress from = new MailAddress("...",
"..." + (char)0x20 + " ...", System.Text.Encoding.UTF8);
MailAddress to = new MailAddress("...", dest);
MailMessage message = new MailMessage(from, to);
message.Body += "Ci-joint, ... ";
message.BodyEncoding = System.Text.Encoding.UTF8;
message.Subject = "Envoi Automatique d'une pièce jointe";
message.SubjectEncoding = System.Text.Encoding.UTF8;
message.Attachments.Add(new Attachment(chemin + pj));
client.SendCompleted += new
SendCompletedEventHandler(SendCompletedCallback);
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 (answer.StartsWith("c") && mailSent == false)
{
client.SendAsyncCancel();
}
message.Dispose();
}
}
} |
Partager