none
C#怎么发电子邮件 RRS feed

  • 问题

  • 本人新学C#,做项目有密码找回功能,在baidu搜得类子都看不明白

    谁有DEMO得发下,谢谢

     

    2010年4月7日 11:05

答案

  • 你好 可以使用System.Net.Mail命名空间下的SmtpClient 类来发送电子邮件

    请参考这篇文档中的例子 http://msdn.microsoft.com/zh-cn/64bit/system.net.mail.smtpclient(VS.80).aspx


    Memory all alone in the moonlight~My Blog in .NET~~~
    • 已标记为答案 YiChun Chen 2010年4月12日 11:18
    2010年4月7日 12:38
    版主
  • 你要有个邮件服务器账号,或者申请一个邮箱,连接测试的时候需要用户名和密码,以前163的可以测试,现在不可以了,你使用gmail服务器试验一下。

    这里有个例子很好。

    public void SendMailUseGmail()
    {
    System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
    msg.To.Add(a@a.com);
    msg.To.Add(b@b.com); 
    /* 
    * msg.To.Add("b@b.com");
    * msg.To.Add("b@b.com");
    * msg.To.Add("b@b.com");可以发送给多人 
    */

    msg.CC.Add(c@c.com);
    /* 
    * msg.CC.Add("c@c.com"); 
    * msg.CC.Add("c@c.com");可以抄送给多人
    */

    msg.From = new MailAddress("a@a.com", "AlphaWu", System.Text.Encoding.UTF8);
    /* 上面3个参数分别是发件人地址(可以随便写),发件人姓名,编码*/
    msg.Subject = "这是测试邮件";//邮件标题
    msg.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码
    msg.Body = "邮件内容";//邮件内容
    msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码
    msg.IsBodyHtml = false;//是否是HTML邮件
    msg.Priority = MailPriority.High;//邮件优先级
    SmtpClient client = new SmtpClient();
    client.Credentials = new System.Net.NetworkCredential("username@gmail.com", "password");
    //上述写你的GMail邮箱和密码
    client.Port = 587;//Gmail使用的端口
    client.Host = "smtp.gmail.com";
    client.EnableSsl = true;//经过ssl加密
    object userState = msg;
    try 

    client.SendAsync(msg, userState);
    //简单一点儿可以client.Send(msg);
    MessageBox.Show("发送成功");
    }

    catch (System.Net.Mail.SmtpException ex)
    {
    MessageBox.Show(ex.Message, "发送邮件出错");
    }

    }

    通过Gmail来发送邮件,成功率极高,几乎都可以发到,推荐使用。

    http://www.weste.net/2007/11-24/15571912990.html


    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2010年4月7日 13:34
    版主

全部回复

  • 你好 可以使用System.Net.Mail命名空间下的SmtpClient 类来发送电子邮件

    请参考这篇文档中的例子 http://msdn.microsoft.com/zh-cn/64bit/system.net.mail.smtpclient(VS.80).aspx


    Memory all alone in the moonlight~My Blog in .NET~~~
    • 已标记为答案 YiChun Chen 2010年4月12日 11:18
    2010年4月7日 12:38
    版主
  • 你要有个邮件服务器账号,或者申请一个邮箱,连接测试的时候需要用户名和密码,以前163的可以测试,现在不可以了,你使用gmail服务器试验一下。

    这里有个例子很好。

    public void SendMailUseGmail()
    {
    System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
    msg.To.Add(a@a.com);
    msg.To.Add(b@b.com); 
    /* 
    * msg.To.Add("b@b.com");
    * msg.To.Add("b@b.com");
    * msg.To.Add("b@b.com");可以发送给多人 
    */

    msg.CC.Add(c@c.com);
    /* 
    * msg.CC.Add("c@c.com"); 
    * msg.CC.Add("c@c.com");可以抄送给多人
    */

    msg.From = new MailAddress("a@a.com", "AlphaWu", System.Text.Encoding.UTF8);
    /* 上面3个参数分别是发件人地址(可以随便写),发件人姓名,编码*/
    msg.Subject = "这是测试邮件";//邮件标题
    msg.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码
    msg.Body = "邮件内容";//邮件内容
    msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码
    msg.IsBodyHtml = false;//是否是HTML邮件
    msg.Priority = MailPriority.High;//邮件优先级
    SmtpClient client = new SmtpClient();
    client.Credentials = new System.Net.NetworkCredential("username@gmail.com", "password");
    //上述写你的GMail邮箱和密码
    client.Port = 587;//Gmail使用的端口
    client.Host = "smtp.gmail.com";
    client.EnableSsl = true;//经过ssl加密
    object userState = msg;
    try 

    client.SendAsync(msg, userState);
    //简单一点儿可以client.Send(msg);
    MessageBox.Show("发送成功");
    }

    catch (System.Net.Mail.SmtpException ex)
    {
    MessageBox.Show(ex.Message, "发送邮件出错");
    }

    }

    通过Gmail来发送邮件,成功率极高,几乎都可以发到,推荐使用。

    http://www.weste.net/2007/11-24/15571912990.html


    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2010年4月7日 13:34
    版主