sử dụng
hệ thống;
sử dụng
hệ thống.net.mail;
không gian tên
gửi email thử nghiệm
{
lớp học
chương trình
{
hằng số
sợi dây
định dạng ngày =
"năm-tháng-ngày :hh:mm:ss:ffffff"
;
tĩnh
vô hiệu
chủ yếu(
sợi dây
[] đối số)
{
console.writeline(
"Bắt đầu gửi email không đồng bộ, thời gian:"
+ datetime.now.tostring(định dạng ngày tháng));
mới
mailhelper().sendasync(
"gửi email thử nghiệm không đồng bộ"
,
"đây là thử nghiệm gửi email không đồng bộ"
,
"huangyuan413026@163.com"
, emailhoàn thành);
console.writeline(
"Email đang được gửi không đồng bộ, thời gian:"
+ datetime.now.tostring(định dạng ngày tháng));
console. đọc khóa();
console. writeline();
}
///
/// Phương thức gọi lại sau khi email được gửi
///
tĩnh
vô hiệu
emailhoàn thành(
sợi dây
tin nhắn)
{
hệ thống.threading.thread.sleep(1000);
console. writeline();
console.writeline(
"Kết quả gửi email:\r\n"
+ (tin nhắn ==
"ĐÚNG VẬY"
?
"Email đã được gửi thành công"
:
"Gửi email không thành công"
) +
",thời gian:"
+ datetime.now.tostring(định dạng ngày tháng));
}
}
///
/// Gửi lớp thư
///
công cộng
lớp học
người đưa thư
{
công cộng
đại biểu
số nguyên
phương pháp ủy nhiệm(
số nguyên
x,
số nguyên
Và);
riêng tư
chỉ đọc
số nguyên
smtport = 25;
chỉ đọc
sợi dây
smtpserver =
"smtp.baidu.com"
;
riêng tư
chỉ đọc
sợi dây
tên người dùng =
"support@baidu.com"
;
chỉ đọc
sợi dây
mật khẩu =
"baidu.com"
;
riêng tư
chỉ đọc
sợi dây
tên tác giả =
"baidu"
;
công cộng
sợi dây
chủ thể {
lấy
;
bộ
; }
công cộng
sợi dây
thân hình {
lấy
;
bộ
; }
công cộng
sợi dây
họ {
lấy
;
bộ
; }
công cộng
bool
cho phépsl {
lấy
;
bộ
; }
mailmessage getclient
{
lấy
{
nếu như
(
sợi dây
.isnullorempty(tos))
trở lại
vô giá trị
;
tin nhắn thư tin nhắn =
mới
tin nhắn thư();
foreach
(
sợi dây
_chuỗi
TRONG
tos.split(
','
))
{
mailmessage.to.add(_str);
}
mailmessage.từ =
mới
system.net.mail.mailaddress(tên người dùng, tên tác giả);
mailmessage.subject = chủ đề;
mailmessage.body = nội dung;
mailmessage.isbodyhtml =
ĐÚNG VẬY
;
mailmessage.bodyencoding = system.text.encoding.utf8;
mailmessage.subjectencoding = system.text.encoding.utf8;
mailmessage.priority = system.net.mail.mailpriority.high;
trở lại
tin nhắn;
}
}
smtpclient được smtpclient
{
lấy
{
trở lại
mới
smtpclient
{
sử dụng thông tin xác thực mặc định =
SAI
,
chứng chỉ =
mới
system.net.networkcredential(tên người dùng, pwd),
phương pháp phân phối = system.net.mail.smtpdeliverymethod.network,
máy chủ = smtpserver,
cổng = smtpport,
enabledsl = enabledsl,
};
}
}
hành động<
sợi dây
> hành độngendcompletedcallback =
vô giá trị
;
/////
///// Gửi email không đồng bộ
/////
///// Bộ thu, được phân tách bằng nhiều bộ thu
//// Phương thức gọi lại sau khi email được gửi
///// |
công cộng
vô hiệu
gửi đồng bộ(
sợi dây
chủ thể,
sợi dây
thân hình,
sợi dây
đến, hành động<
sợi dây
> _actincompletedcallback)
{
nếu như
(
sợi dây
.isnullorempty(đến))
trở lại
;
tos = cái đó;
smtpclient smtpclient = getsmtpclient;
thư tin nhắn thư = getclient;
nếu như
(smtpclient ==
vô giá trị
|| tin nhắn ==
vô giá trị
)
trở lại
;
chủ ngữ = chủ ngữ;
thân = cơ thể;
cho phépsl =
SAI
;
actionsendcompletedcallback = _actincompletedcallback;
smtpclient.gửihoàn thành +=
mới
sendcompletedeventhandler(sendcompletedcallback);
thử
{
smtpclient.sendasync(thư,
"ĐÚNG VẬY"
);
}
nắm lấy
(ngoại lệ e)
{
ném
mới
ngoại lệ (e.message);
}
Cuối cùng
{
smtpclient =
vô giá trị
;
tin nhắn thư =
vô giá trị
;
}
}
///
/// Thực thi phương thức gọi lại sau khi hoàn thành thao tác không đồng bộ
///
riêng tư
vô hiệu
gửihoàn thànhgọi lại(
sự vật
người gửi, system.componentmodel.asynccompletedeventargs e)
{
nếu như
(hành độnggửihoàn thànhgọi lại ==
vô giá trị
)
trở lại
;
sợi dây
tin nhắn =
sợi dây
.trống;
nếu như
(e.đã hủy)
{
tin nhắn =
"Hoạt động không đồng bộ đã bị hủy"
;
}
khác
nếu như
(e.lỗi !=
vô giá trị
)
{
tin nhắn = (
sợi dây
.định dạng(
"trạng thái người dùng:{0},tin nhắn:{1}"
, (
sợi dây
)e.userstate, e.error.tostring()));
}
khác
tin nhắn = (
sợi dây
)e.trạng thái người dùng;
hành độngendcompletedcallback(tin nhắn);
}
}
}
Tôi là một lập trình viên xuất sắc, rất giỏi!