异步发送邮件

using System;
using System.Collections.Generic;
using System.Web;
using System.Net.Mail;
using System.Text;

/// <summary>
///发送邮件类
/// </summary>
public class SmtpMail
{
    /// <summary>
    /// 发送邮件的方法(发送单个收件人)
    /// </summary>
    /// <param name="fromMail">源邮件地址</param>
    /// <param name="toMail">目的邮件地址</param>
    /// <param name="loginName">用户名</param>
    /// <param name="pass">密码</param>
    /// <param name="title">发送邮件的标题</param>
    /// <param name="content">发送邮件的内容</param>
    public void SendMail(string fromMail, string toMail, string loginName, string pass, string title, string content)
    {

        MailMessage mailMessage = new MailMessage();

        SmtpClient client = new SmtpClient();
        //发件人邮箱地址
        mailMessage.From = new MailAddress(fromMail);
        //收件人邮箱地址
        mailMessage.To.Add(new MailAddress(toMail));

        //邮件标题编码
        mailMessage.SubjectEncoding = Encoding.UTF8;
        //邮件主题
        mailMessage.Subject = title;
        //邮件内容
        mailMessage.Body = content;
        //邮件内容编码
        mailMessage.BodyEncoding = Encoding.UTF8;
        //设置正文内容是否是包含Html的格式
        mailMessage.IsBodyHtml = true;
        //发送邮件的优先等级(有效值为High,Low,Normal)
        mailMessage.Priority = MailPriority.Normal;
        //指定发送邮件的服务器地址或IP
        client.Host = @"smtp.163.com";  //固定写

        //client.Host = "smtp." + mailMessage.From.Host;
        client.DeliveryMethod = SmtpDeliveryMethod.Network;
        client.SendCompleted += new SendCompletedEventHandler(client_SendCompleted);
        //指定登录服务器的用户名和密码
        client.Credentials = new System.Net.NetworkCredential(loginName, pass);
        //发送邮件
        //client.Send(mailMessage);   //同步发送
        client.SendAsync(mailMessage, mailMessage.To); //异步发送 (异步发送时页面上要加上Async="true" )
    }

    void client_SendCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
    {
        SmtpClient m = (SmtpClient)sender;
        string s = (string)e.UserState;
        if (e.Cancelled)
        {
            System.Web.HttpContext.Current.Response.Write("<script>alert('Sending of email message was cancelled.');</script>");
        }
        if (e.Error == null)
        {
            System.Web.HttpContext.Current.Response.Write("<script>alert('Mail sent successfully');</script>");
        }
        else
        {
            System.Web.HttpContext.Current.Response.Write("<script>alert('Error occured, info=" + e.Error.Message + "');</script>");
        }

    }


}

 

 有一点疑问 异步发送怎么根据发送状态来操作数据库 。。。。。。。。。???

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值