111,120
社区成员
发帖
与我相关
我的任务
分享
static MailMessage myMail = new MailMessage();
static SmtpClient mySmtpClient;
public bool SendMail(string from,string displayName,string mailPwd,string to,string cc,string bcc,string subject,string body)
{
myMail.From = new MailAddress(from, displayName);
myMail.To.Add(new MailAddress(to));
myMail.Subject = subject;
myMail.SubjectEncoding = Encoding.UTF8;
myMail.Body = body;
myMail.BodyEncoding = Encoding.UTF8;
myMail.IsBodyHtml = true;
myMail.Priority = MailPriority.High;
myMail.CC.Add(new MailAddress(cc));
myMail.Bcc.Add(new MailAddress(bcc));
mySmtpClient = new SmtpClient("smtp." + myMail.From.Host, 25);
mySmtpClient.Credentials = new NetworkCredential(from, mailPwd);
mySmtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
mySmtpClient.EnableSsl = true;
mySmtpClient.SendCompleted += new SendCompletedEventHandler(mySmtpClient_SendCompleted);
mySmtpClient.SendAsync(myMail, myMail); //这里是异步发送
return true; //到这里真正发送成功了么?
}
void mySmtpClient_SendCompleted(object sender, AsyncCompletedEventArgs e)
{
if (e.Cancelled)
{
//取消了,自然没发送成功。
return;
}
//这里才是真正成功了,可是当主程序调用这个类的SendMail函数时,怎么才能知道这里成功了呢?
}