c#プログラミングガイド(八)非同期C#GMAILによるメール送信

13899 ワード


さっき、非同期でメールを送ることができるかどうかというネットユーザーがいましたが、テストは全然問題ありませんでした.ここではSendCompletedイベントとSendAsyncメソッドが使用されていることに注意してください.
 
コードは以下の通りで、コードは簡単であまり説明しないで、私の前の文章を見ることができません.

  
    
1 using System;
2   using System.Collections.Generic;
3   using System.Linq;
4   using System.Text;
5   using System.Net;
6   using System.Net.Mail;
7   using System.Threading;
8
9   namespace MailTest
10 {
11 class Program
12 {
13 //
14 private static AutoResetEvent _event = new AutoResetEvent( false );
15
16 static void Main( string [] args)
17 {
18 string user = " zhangsan " ;
19 string password = " zhangsan " ;
20 //
21 string host = " smtp.gmail.com " ;
22 //
23 string mailAddress = " [email protected] " ;
24 string ToAddress = " [email protected] " ;
25 //
26
27 SmtpClient smtp = new SmtpClient(host);
28 smtp.EnableSsl = true ; //
29 smtp.Credentials = new NetworkCredential(user, password); //
30 smtp.DeliveryMethod = SmtpDeliveryMethod.Network; //
31 //
32 MailMessage message = new MailMessage(mailAddress, ToAddress, " Test " , " This is a Test Message " );
33 //
34 smtp.SendCompleted += new SendCompletedEventHandler(smtp_SendCompleted);
35 smtp.SendAsync(message, " TheObjectCompletedUse " );
36 //
37 _event.WaitOne();
38 Console.WriteLine( " Main method end " );
39 }
40
41 private static void smtp_SendCompleted( object sender, System.ComponentModel.AsyncCompletedEventArgs e)
42 {
43 Console.WriteLine(( string )e.UserState);
44 _event.Set();
45 }
46 }
47 }

 
.簡単でしょう.コードテストは全く問題なく、本当に有効なGMAILアカウントに置き換えることに注意してください.
 
ダウンロード:ダウンロード