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アカウントに置き換えることに注意してください.
ダウンロード:ダウンロード