C#发邮件 两种方法 实例

《本文原创,转载请标明作者和出处。》

最近要用c#做个小工具,要用到C#发邮件这个功能,顺便把代码贴上来和大家分享。

方法一: 用.net的net.mail库封装好的方法。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Mail;
using System.Net.Security;

namespace Mail_TC01
{
    class Program
    {
        static void Main(string[] args)
        {
            MailMessage myMail = new MailMessage();
            myMail.From = new MailAddress("huichanglee@163.com");
            myMail.To.Add(new MailAddress("li_huichang@yeah.net")); 
            myMail.Subject = "来自Cheers的问候"; 
            myMail.SubjectEncoding = Encoding.UTF8; 
            myMail.Body = "Hi 哥们: 发个邮件测试下。"; 
            myMail.BodyEncoding = Encoding.UTF8; 
            myMail.IsBodyHtml = false; 
            myMail.Priority = MailPriority.High;
            myMail.CC.Add(new MailAddress("252827972@qq.com"));
            myMail.Bcc.Add(new MailAddress("huichanglee@126.com"));  //smtp client   
            SmtpClient sender = new SmtpClient("smtp.163.com");
            sender.UseDefaultCredentials = false;
            sender.Credentials = new NetworkCredential("huichanglee@163.com", "******");  
            sender.DeliveryMethod = SmtpDeliveryMethod.Network;   
            sender.EnableSsl = true;
            try  
            {   
                sender.Send(myMail);  
                Console.WriteLine("Success"); 
            }   
            catch (InvalidOperationException e)  
            {   
                Console.WriteLine("Failed.Exception:{0}", e.Message);   
            }   Console.Write("Press any key to quit...");  
            Console.ReadKey();   
        }
    }
}


备注: 由于微软.net framework有个bug(见:http://hi.baidu.com/shuwang/blog/item/f463db1bb4c789d2ad6e75dc.html),推荐使用下边方法。


方法二: .net 结合 jmail发邮件

前提条件: 必须安装jmail组件(免费的网上随便都能下到,现在版本为4.5)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using jmail;

namespace Jmail_TC01
{
    class Program
    {
        public static bool SendMail(string from, string to, string subject, string body)
        {
            jmail.Message m = new Message();
            m.Charset = "gb2312";
            m.From = from;
            m.Subject = subject;
            m.AddRecipient(to, null, null);
            m.MailServerUserName = "huichanglee@163.com";    //此处为邮箱账户
            #region password
            m.MailServerPassWord = "******";   //此处为邮箱密码
            #endregion
            m.ContentType = "text/html";
            m.Body = body;
            m.Send("smtp.163.com", false);
            return true;
        }
        static void Main(string[] args)
        {
            if (SendMail("huichanglee@163.com", "huichanglee@126.com", "Hi 帮我在明天把书还了", "Hi,Cheers:明天下午帮我把书还了,谢谢!~"))    //调用发邮件方法。
            {
                 Console.WriteLine("Send mail pass!");
            }
            else
            {
                Console.WriteLine("Send mail fail!");
            }
            Console.ReadKey();
        }
    }
}


两种方法各有优劣,大家根据实际情况选择吧!呵呵~~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值